{"id":28313575,"url":"https://github.com/chamikathereal/java-ejb-jndi","last_synced_at":"2026-05-01T17:33:59.785Z","repository":{"id":293034336,"uuid":"982728584","full_name":"chamikathereal/Java-EJB-JNDI","owner":"chamikathereal","description":"A Java EE project demonstrating EJB remote interfaces and JNDI communication between a web app and standalone clients using GlassFish and Maven.","archived":false,"fork":false,"pushed_at":"2025-05-14T12:55:26.000Z","size":3918,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-23T17:44:31.330Z","etag":null,"topics":["ejb","jakarta-ee","java","javaee","jndi","jndi-lookups","maven"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chamikathereal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-13T10:16:08.000Z","updated_at":"2025-06-01T09:14:05.000Z","dependencies_parsed_at":"2025-05-13T11:39:47.804Z","dependency_job_id":null,"html_url":"https://github.com/chamikathereal/Java-EJB-JNDI","commit_stats":null,"previous_names":["chamikathereal/java-ejb-jndi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chamikathereal/Java-EJB-JNDI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamikathereal%2FJava-EJB-JNDI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamikathereal%2FJava-EJB-JNDI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamikathereal%2FJava-EJB-JNDI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamikathereal%2FJava-EJB-JNDI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chamikathereal","download_url":"https://codeload.github.com/chamikathereal/Java-EJB-JNDI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chamikathereal%2FJava-EJB-JNDI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32507087,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ejb","jakarta-ee","java","javaee","jndi","jndi-lookups","maven"],"created_at":"2025-05-24T18:11:07.647Z","updated_at":"2026-05-01T17:33:59.766Z","avatar_url":"https://github.com/chamikathereal.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Java-EJB-JNDI\n\nA multi-module Java EE 7+ project demonstrating the use of **Enterprise Java Beans (EJB)** and **Java Naming and Directory Interface (JNDI)** communication between a server-side application and multiple client applications. This project uses **GlassFish** as the application server and is built using **Maven**.\n\n---\n\n## 📽️ Demo Video\n[![Java CDI Project Demo](https://github.com/chamikathereal/Java-EJB-JNDI/blob/main/Java-EJB-JNDI.png)](https://youtu.be/3eMBZRCJQeM)\n\n---\n\n## 📦 Project Modules\n\nThis repository contains **three Maven projects** that work together:\n\n### 1. `EE-WebApp`\nA server-side EJB module exposing remote business logic using the `@Remote` interface.\n\n- **Technologies**: EJB, JNDI, Jakarta EE (10)\n- **Module Type**: EJB module (`.jar`)\n- **Exposes**: `UserDetails` interface\n- **Implements**: `UserDetailsBean`\n\n### 2. `EE-Client-App`\nA standalone Java client that connects to the EJB hosted on the application server using JNDI lookup.\n\n- **Technology**: GlassFish embedded\n- **Looks up**: `UserDetails` bean from the server\n- **Prints**: User's name from the EJB\n- **Binds**: `\"AppName\"` string to the JNDI context\n\n### 3. `EE-Client-App2`\nAnother standalone Java client to demonstrate that **multiple clients** can interact with the shared EJB and JNDI registry.\n\n- **Looks up**: `\"AppName\"` from the JNDI context\n- **Prints**: Application name string\n\n---\n\n## 🛠 Technologies Used\n\n- Java 11\n- Jakarta EE 10\n- EJB (Enterprise Java Beans)\n- JNDI (Java Naming and Directory Interface)\n- GlassFish 7.0.21 (embedded and remote)\n- Maven\n\n---\n\n## 🔧 How to Run\n\n1. **Deploy `EE-WebApp` to GlassFish**:\n   - Use GlassFish Admin Console or `mvn clean install`\n   - Ensure the EJB is accessible remotely\n\n2. **Run EE-Client-App**:\n   - Ensure GlassFish server is running\n   - Run `Main.java` to perform JNDI lookup and bind `\"AppName\"`\n\n3. **Run EE-Client-App2**:\n   - Ensure EE-Client-App was executed first\n   - Run `Main.java` to retrieve `\"AppName\"` via JNDI\n\n---\n\n## 🔗 Repository Structure\n\n```\n\nJava-EJB-JNDI/\n├── EE-WebApp/\n├── EE-Client-App/\n└── EE-Client-App2/\n\n```\n\n---\n\n## 📚 Learning Objectives\n\n- Understand how to use EJBs for modular enterprise logic\n- Use JNDI for client-server communication\n- Implement dependency injection and JNDI lookups\n- Build distributed Java EE applications\n\n---\n\n## 📎 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## 🤝 Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n---\n\n## 🧑‍💻 Author\n\n**Chamika Gayashan**  \nUndergraduate Software Engineer | Sri Lanka  \nLinkedin: [@chamikathereal](https://www.linkedin.com/in/chamikathereal/)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamikathereal%2Fjava-ejb-jndi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchamikathereal%2Fjava-ejb-jndi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchamikathereal%2Fjava-ejb-jndi/lists"}