外化Spring库Web应用程序

时间:2013-04-02 08:27:59

标签: java spring websphere tomcat7 static-libraries

早上好@ Everybody,

我想知道是否可以外化Spring库。我们有很多Application / Webservices都使用相同的Spring-libs,现在我们被迫在Websphere(8.5.0.1)服务器上部署我们的应用程序。由于Websphere和Classloading与我之前所知的其他内容有点不同......

嗯......

理念如下:

创建一个包含所有Springlibraries的mavenproject,并将此jar文件添加到服务器。我们希望继续在tomcat服务器上进行开发,只需在websphere上部署而不会有太多麻烦......

但是,如果我将所有springlib移动到外部文件,似乎无法正确加载应用程序(Classloader问题?)。 所以,如果你们中的任何人能给我一个提示或一个好的建议,我真的很感激。 当然,如果我错过了一个事实,为什么不可能呢?

编辑: 这就是我的pom.xml实际上的样子(当然是其中的一部分),我真的,真的不喜欢它......

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <packagingExcludes>WEB-INF/lib/hibernate*.jar,
                        WEB-INF/lib/*spring*.jar,
                        WEB-INF/lib/xml-apis*.jar,
                        WEB-INF/lib/xpp3_min*.jar,
                        WEB-INF/lib/xstream*.jar,
                        WEB-INF/lib/antlr*.jar,
                        WEB-INF/lib/webservices-api*.jar,
                        WEB-INF/lib/commons-collections*.jar,
                        WEB-INF/lib/dom4j*.jar,
                        WEB-INF/lib/javassist*.jar,
                        WEB-INF/lib/jboss-logging*.jar,
                        WEB-INF/lib/jboss-transaction-api*.jar,
                        WEB-INF/lib/primefaces*.jar,
                        WEB-INF/lib/redmond*.jar,
                        WEB-INF/lib/sunny*.jar,
                        WEB-INF/lib/akka*.jar,
                        WEB-INF/lib/scala*.jar,
                        WEB-INF/lib/scala*.jar,
                        WEB-INF/lib/jsf-impl*.jar,
                        WEB-INF/lib/jsf-api*.jar,
                        WEB-INF/lib/config-0.3.1.jar,
                        WEB-INF/lib/commons-collections*.jar,
                        WEB-INF/lib/commons-lang*.jar,
                        WEB-INF/lib/cglib-nodep*.jar,
                        WEB-INF/lib/slf4j-api*.jar,
                        WEB-INF/lib/quartz*.jar,
                        WEB-INF/lib/c3p0*.jar,
                        WEB-INF/lib/ojdbc6*.jar,
                        WEB-INF/lib/mysql-connector-java*.jar,
                        WEB-INF/lib/aopalliance-1.0.jar,
                        WEB-INF/lib/aspectjrt-1.6.8.jar,
                        WEB-INF/lib/cdi-api-1.0.jar,
                        WEB-INF/lib/commons-cli-1.2.jar,
                        WEB-INF/lib/commons-io-2.3.jar,
                        WEB-INF/lib/commons-logging-1.1.1.jar,
                        WEB-INF/lib/freemarker-2.3.9.jar,
                        WEB-INF/lib/javax.inject-1.jar,
                        WEB-INF/lib/jboss-interceptor-api-1.1.jar,
                        WEB-INF/lib/jcl-over-slf4j-1.6.1.jar,
                        WEB-INF/lib/jettison-1.0.jar,
                        WEB-INF/lib/jsr250-api-1.0.jar,
                        WEB-INF/lib/validation-api-1.0.0.GA.jar
                    </packagingExcludes>
                </configuration>
            </plugin>

但是,如果我这样做,将此库添加为外部,我的应用程序可以正常工作(但在Websphere上 JUST ,这绝对不是我的意图)

1 个答案:

答案 0 :(得分:1)

尝试按照@Dhanush Gopinath的建议将spring库保存在WEB-INF / lib文件夹中,并将classloader更改为parent last。

要更改类加载器,请进入域管理器控制台。

服务器&gt; WebSphere Application Server&gt; $服务器名称&gt;服务器特定应用程序设置

将ClassLoader策略更改为“Single”,将类加载模式更改为“parent last”。检查这是否有帮助。

enter image description here