SAP JBOSS与jar有关

我正在尝试使用ABAP函数调用将我的j2ee应用程序与SAP连接。 当我在eclipse中使用热编码值将其作为单个类运行时,它可以正常工作。 当我尝试在JBoss服务器中运行它时,我从前端获取一些值并将其传递给我之前提到的同一个类的java类,它显示了以下exception

java.lang.NoClassDefFoundError: com/sap/conn/jco/JCoException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.privateGetPublicMethods(Unknown Source) at java.lang.Class.getMethods(Unknown Source) at org.jboss.aop.ClassContainer.createMethodMap(ClassContainer.java:182) 09:35:42,326 INFO [EARDeployer] Started J2EE application: file:/F:/jboss/jboss- 4.2.3.GA/server/default/deploy/MPCS.ear 09:35:42,326 ERROR [URLDeploymentScanner] Incomplete Deployment listing: --- MBeans waiting for other MBeans --- ObjectName: jboss.j2ee:service=EJB3,module=MPCS.jar State: FAILED Reason: java.lang.NoClassDefFoundError: com/sap/conn/jco/JCoException --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM --- ObjectName: jboss.j2ee:service=EJB3,module=MPCS.jar State: FAILED Reason: java.lang.NoClassDefFoundError: com/sap/conn/jco/JCoException 

我在F:/ jar中有我的sapjco3.jar,其中我还有ejb3-persistence.jar,jboss-ejb3x.jar等,它们被正确识别。 我也在构建路径中添加了jar。 但没有任何帮助。

当在EJB中使用来自sapjco3.jar的类(使用@Singleton和@Startup注释)时,我在JBoss EAP 6.1中的NoClassDefFoundError遇到了类似的问题。 除此之外,我还收到一条错误消息,说当重新发布到EAP或重新启动已部署的模块时,本机库已经加载到另一个类加载器中。

我对这两个问题的解决方案是将sapjco3.jar作为全局JBoss模块包含在内。

步骤1

我在EAPS的\ modules文件夹中创建了以下结构:

 com --> sap --> conn --> jco --> main --> module.xml --> sapjco3.jar 

module.xml的内容:

       

第2步

将模块添加为standalone.xml中的全局模块:

  ...    ...  

第3步

在EJB项目META-INF中创建或编辑文件jboss-deployment-structure.xml以包含该模块。 我的文件看起来像这样:

         

第4步

将Maven依赖项配置为提供的作用域,以便我们可以在工作区内使用sapjco3.jar,但不能在部署中使用它。

  com.sap.conn.jco sapjco3 3.0.10 provided  

这就是我记得到目前为止它的function,也许这对你或其他任何人都有帮助。

除此之外,如果您使用较新版本的sapjco3,可能需要将依赖项添加到javax.api。 从Java加载加密库需要这种依赖关系。