具有相同包装结构和类

时间:2016-06-26 11:09:42

标签: java eclipse jar tomcat7

问题 - 我的Web应用程序中有两个jar的问题,我正在使用Mars版本的Eclipse IDE开发并将其托管在apache tomcat 7.0 Web服务器上 -

  1. hibernate-jpa-2.1-api-1.0.0.final
  2. com.ibm.ws.webservices.thinclient_7.0.0
  3. 它们都具有相同的包结构和相同的类 -

      

    javax.persistence.CascadeType

    此包和类是从第一个jar使用的ENUM类型声明。我最近添加了第二个jar,它也是第三方jar的依赖,用于我的应用程序的身份验证和授权。一旦添加了第二个罐子,我就遇到了这个问题,即从第一个罐子中取出的包装是从第二个罐子中取出的。

    枚举值CascadeType.DETACH正在应用程序中的第一个jar文件中使用,并且此ENUM值未在第二个jar中的对应文件中定义。因此,这个问题正在面临。

    我已经尝试过的事情没有结果 -

    1. 试图从第二个jar中删除上面冲突的包并添加到库中。然后这个jar在运行时没有被接收,并且我在类中得到了noclassdeffound错误 - com.ibm.ws.webservices.multiprotocol.GeneratedService,即使在classpath中第二个jar本身可见这个类之后也是如此。
    2. 而不是CascadeType.DETACH,我尝试使用第二个jar本身的一些其他ENUM值,让编译器忽略第一个jar。然后是为类 - com.ibm.ws.webservices.multiprotocol.GeneratedService获取noclassdeffound错误,它仍在第二个jar中。
    3. 根据我从堆栈溢出本身获得的建议,遍历到Right click on project -> build path -> configure build path -> Order and export以设置jar的优先级。但是在此选项中,只能在WEBAPP库,JDK库或外部配置库等库集中设置优先级,但不能在一组库中的单个jar中设置优先级。但我的两个库都在WEBAPP库中设置自己,因此无法使用此选项设置这些jar的优先级。作为另一个试验,我从WEBAPP库中删除了第二个jar,并将其配置为外部库,并将其优先级设置为低于包含我的第一个jar的WEBAPP库。仍在为类 - com.ibm.ws.webservices.multiprotocol.GeneratedService获取相同的issue-noclassdeffound错误,该错误仍在第二个jar中。
    4. 堆栈溢出的一些建议是在maven pom xml中设置依赖项。这不适用于我的应用程序,因为我没有通过maven运行它,只是在tomcat web服务器上运行它。
    5. 请提出解决此问题的方法。请注意,此应用程序面向环境级别的Websphere服务器。 Tomcat服务器正在本地设置本身使用。请建议记住这一点。我也尝试过安装websphere服务器进行本地设置,但由于不允许在我们的组织内部安装商业服务器,所以无法安装。

0 个答案:

没有答案