【问题标题】:Error while injecting EJB running on IBM websphere in spring春季注入在 IBM websphere 上运行的 EJB 时出错
【发布时间】:2015-02-19 18:20:13
【问题描述】:

我试图在 spring 上下文中使用这个注入一个 EJB:

<jee:remote-slsb id="reportMisBeans" business-interface="com.nsdl.sam.app.reportmis.remote.SamReportMisRemote" jndi-name="SamReportMisRemote" environment-ref="env">
</jee:remote-slsb>
<util:properties id="env">
  <prop key="java.naming.factory.initial">com.ibm.websphere.naming.WsnInitialContextFactory</prop> 
  <prop key="java.naming.provider.url">iiop://172.18.75.23:2811/</prop>
</util:properties>"

但是得到这个错误:

Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: com.ibm.websphere.naming.WsnInitialContextFactory
[Root exception is java.lang.ClassNotFoundException: com.ibm.websphere.naming.WsnInitialContextFactory]

我已经将 IBM 瘦 EJB 客户端 jar 保存在 classpath.

【问题讨论】:

  • 您是在 WebSphere 上运行它并尝试从同一个 JVM 注入 EJB,还是将您的应用程序放在某个第三方服务器上并尝试访问在 WebSphere 上运行的远程 EJB?
  • EJB 位于远程服务器上,即为什么我使用远程查找。
  • 如果你的客户端服务器是WebSphere,那么类路径中不需要瘦客户端,如果是第三方除了ejb瘦客户端,你需要com.ibm.ws.orb_8.5.0.jar
  • 我的客户端代码在tomcat容器上运行
  • 我在 ibmwebsphere 中使用 springboot 注入 ejb 时遇到了同样的问题 [单独的应用程序,相同的容器,也尝试使用不同的容器]。我还尝试了各种查找/瘦客户端/无客户端等。我可以在 IBMWAS 中确认它不起作用(Jboss 工作!)。 IBM 支持和论坛没有用。他们通常会指示您不要使用 Spring!很棒的客户服务:)。我所做的是,将 ejb 公开为 web 服务,并使用 springboot 连接到该 web 服务。我必须经历所有这些循环,因为 Client-org 想要使用这个 IBM-beast。

标签: spring dependency-injection ejb websphere


【解决方案1】:

如果您的客户端容器是 Tomcat,您将需要两个 jar:com.ibm.ws.ejb.thinclient_8.5.0.jarcom.ibm.ws.orb_8.5.0.jar。此外,如果在 WebSphere 服务器上启用了安全性并且需要 SSL,您将需要额外的设置。更多详情请参考本页Running the IBM Thin Client for EJB

【讨论】:

  • 同样的异常 IBM Thin Client for EJB 可以使用 JNDI 查找访问 WebSphere Application Server 上的版本 2.x 和版本 3.x EJB,但它无法访问版本3.x EJB 通过资源注入。如果客户端应用程序是在 Java 平台企业版 (Java EE) 应用程序客户端容器中运行的 Java 平台企业版 (Java EE) 应用程序客户端,则支持资源注入。你能告诉我IBM客户端是否不支持在tomcat上运行的spring注入。即使没有 com.ibm.ws.orb_8.5.0.jar,基本查找也能正常工作
  • @BipulKumar ,如果基本查找对您有用,那么这是 Spring 问题。如果您提供工厂和 url,那么它应该在下面使用 InitialContext 查找而不是注入 (@EJB)。从您的异常来看,Spring 似乎找不到所需的类 - 类加载问题而不是注入问题(也许完整的堆栈跟踪会告诉更多信息)。您需要找出为什么 Spring 没有看到该类。
猜你喜欢
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-27
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
相关资源
最近更新 更多