标签: conflicting-libraries

如何包含同一依赖项的两个不同版本?

我正在为Java中的ERP系统进行定制.在我的自定义中,我想使用Apache POI 3.10.1.因此我整合了罐子poi-3.10.1-20140818.jar和poi-ooxml-3.10.1-20140818.jar.

但是,这些jar包含已经包含在ERP系统核心代码中的几个类,但有差异.

如果核心ERP类覆盖POI类,则自定义会引发运行时异常.如果POI类覆盖核心类,则核心功能可能会发生相同的情况.

处理这样的问题的最佳做法是什么?

我的定制是一个相对孤立的功能.

java classloader conflicting-libraries apache-poi

2
推荐指数
1
解决办法
1425
查看次数

石英的图书馆冲突

有一个奇怪的情况.我在我的企业应用程序中使用Glassfish服务器.在那个应用程序中,我使用的是JSF,Richfaces,Quartz,Jasper Reports和Commons Email.当我构建并部署应用程序到我的开发.计算机,开发和测试服务器,一切正常.但是,当我使用相同的glassfish将应用程序部署到生产服务器时,我无法运行Quartz调度程序.它让我觉得公共收藏有一些问题.我知道某处有冲突,但我无法找到.你能给我一些指点吗?顺便说一下,我正在使用NetBeans 6.5.

这是日志:

[#|2009-02-13T02:00:03.055+0000|WARNING|sun-appserver9.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=22;_ThreadName=httpSSLWorkerThread-80-4;_RequestID=97d21f45-2489-486c-b8d9-68625776c546;|#{SchedulerController.play}: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
javax.faces.FacesException: #{SchedulerController.play}: java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.orderedSet(Ljava/util/Set;)Ljava/util/Set;
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:107)
    at javax.faces.component.UICommand.broadcast(UICommand.java:383)
    at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
    at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
    at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
    at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) …
Run Code Online (Sandbox Code Playgroud)

java conflicting-libraries quartz-scheduler

1
推荐指数
1
解决办法
6500
查看次数

全局变量之间的冲突c/c ++

我正在使用两个文件".h",其中有3个具有相同名称的全局变量.

我们假设有这些文件:

  • 啊=>里面有"union var1","union var2"和"#define LENGTH 20".
  • Bh =>里面有"union var1","union var2"和"#define LENGTH 60".
  • Ch =>进口Ah和Bh

当我编译Ch时,我有一个错误导致相同变量名称的冲突.

我不想修改他们的名字,因为他们在公共图书馆里面(我想按原样使用它们!).这是我的问题.有人能帮我吗?谢谢.

c++ global-variables conflicting-libraries

1
推荐指数
1
解决办法
984
查看次数

GNU链接器如何确定需要哪些C/C++库文件?

我正在OpenWRT机器(ARM路由器)上构建PHP7.我想要包含MySQL,所以我也必须构建它.OpenWRT是99.5%的普通linux,但有一些奇怪的构建/共享库事物可能不经常运行,所以我遇到了一些困难.

MySQL构建正常(经过一些调整后),我有一个libmysqlclient.so工作.但是,configurePHP7 的过程在尝试链接MySQL测试程序时失败,因为libmysqlclient.so必须与C++标准库链接,而不是C标准库.(MySQL显然至少部分是C++,它使用std::...stuff....) Configure尝试编译测试程序gcc,其中不包括链接中的C++库,因此测试失败.

我通过制作一个简单的C/C++切换脚本来解决这个问题:如果命令行包含-lmysqlclient那么我就是exec g++ $*其他人exec gcc $*.然后我告诉configure我使用我的脚本作为C编译器.

我发现必须有更好的方法来处理这个问题.似乎libmysqlclient.so应该有一些方法告诉链接器它也需要它libstdc++.so,所以即使gcc用于链接,所有必要的库也会被拉入.

有没有办法标记依赖关系libmysqlclient.so?或者configure更聪明地运行测试程序?

c c++ shared-libraries conflicting-libraries

-1
推荐指数
1
解决办法
71
查看次数