这应该是一个常见的案例,很容易让你们很多人。
我有appA。该应用程序使用框架fw1和fw2。
fw1使用来自jar的Logger.java
http://anonsvn.jboss.org/repos/common/common-logging-spi/trunk/src/main/java/org/jboss/logging/
fw2使用来自jar的Logger.java
http://anonsvn.jboss.org/repos/common/jboss-logging/trunk/src/main/java/org/jboss/logging/
请注意Logger.java不可互换(即具有不同的方法)。每个框架都需要使用自己选择的Logger.java。
如何在Jboss中部署这样的应用程序?这不是我的确切场景,但如果有人能告诉我如何解决这个问题会很棒。我可以从那里拿走它。原因是如果我必须解释我的情况,它将需要3页!
提前致谢
答案 0 :(得分:1)
我认为您的问题没有一般解决方案。但我建议你继续发现如下。
通常你应该使用不同的类加载器运行fw1和fw2。如果你可以拦截这些框架的初始化,你可以这样做。
其他方法是创建自己的Logger
混合版本。我不知道它有多复杂,但可能这更容易。例如,logger1具有方法writeLog()
,而Logger2具有方法printLog()
。因此,在与原始包相同的包中创建自己的Logger。此记录器将使用单独的类加载器将调用委托给第一个或第二个版本,并将实现这两种方法。
不幸的是,在没有fw1,fw2和logger的具体名称的情况下,你非常普遍地描述了你的问题。如果您自己找不到解决方案,可能会尝试使用更具体的信息提交另一个问题。它可能有所帮助。
祝你好运。答案 1 :(得分:0)
您正在使用哪个版本的JBoss?
JBoss通过jboss-deployment-structure.xml
提供了非常细粒度的类加载处理使用它你可以指定fw1使用loggera.java和fw2来使用loggerb.java
我觉得不需要重复,你可以在jboss docs中阅读jboss-deployment-structure.xml。
希望这有帮助。