В настоящее время я переношу приложения с JBoss 5.1 на JBoss 7.0 EAP-сервер.
Я добавил модуль для сервера JBoss с именем - org.springframework для банок весной зависимостей
JBOSS EAP 7.0 - java.lang.NoClassDefFoundError: org/springframework/context/support/ClassPathXmlApplicationContext
<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="org.springframework">
<resources>
<resource-root path="spring-core-3.0.5.RELEASE.jar"/>
<resource-root path="spring-context-3.0.5.RELEASE.jar"/>
<resource-root path="spring-beans-3.0.5.RELEASE.jar"/>
<resource-root path="spring-expression-3.0.5.RELEASE.jar"/>
<resource-root path="spring-web-3.0.5.RELEASE.jar"/>
<resource-root path="spring-aop-3.0.5.RELEASE.jar"/>
<resource-root path="spring-asm-3.0.5.RELEASE.jar"/>
<resource-root path="spring-jdbc-3.0.5.RELEASE.jar"/>
<resource-root path="spring-tx-3.0.5.RELEASE.jar"/>
<resource-root path="org.springframework.web.servlet-3.0.0.M3.jar"/>
<resource-root path="commons-logging-1.1.1.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.servlet.jsp.api"/>
<module name="javax.faces.api"/>
</dependencies>
</module>
Я определил зависимость модуля в JBoss-развертывания-structure.xml в WAR
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="com.oracle" />
<module name="org.springframework" />
</dependencies>
</deployment>
</jboss-deployment-structure>
война развертывается на сервер также содержит пружинный контекстное 3.0.5.RELEASE.jar в WEB-INF/Lib папки
Итак, я думаю, что требуемый jar-spring-context-3.0.5.RELEASE.jar существует в пути класса. Но все-таки я получаю ошибку ниже:
04:33:30,496 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] (default task-19) Loading XML bean definitions from class path resource [core_services.xml]
04:33:30,507 INFO [org.springframework.beans.factory.support.DefaultListableBeanFactory] (default task-19) Pre-instantiating singletons in org.springframework.beans.fact
[email protected]: defining beans [LogService,CacheService,PropertyService]; root of factory hierarchy
2017.02.09 04:33:30 ERROR CashViewsPortalServiceImpl(-2): org/springframework/context/support/ClassPathXmlApplicationContext
CallStack=java.lang.NoClassDefFoundError: org/springframework/context/support/ClassPathXmlApplicationContext
at com.karthik.common.service.Services.getService(Services.java:31)
at com.karthik.data.service.DataServices.getService(DataServices.java:18)
at com.karthik.portal.server.PortalServiceImpl.getInitializeInfo(PortalServiceImpl.java:83)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:561)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:265)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:305)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
1) Почему нам нужно добавить модуль в JBoss 7 EAP сервер для загрузки класса, даже несмотря на то банки поставляются в WEB-INF/Lib папки войны развернуто на сервере?
2) Как устранить вышеуказанную ошибку?
Пришлось удалить мой ответ, потому что мое предположение было неправильным. На самом деле класс, который не найден, находится в 'spring-core-3.0.5.RELEASE.jar', и вы уже определили это. Попробуйте изменить модуль пружины в структуре развертывания на ' ', добавив атрибут 'export'. –
Omoro
@Omoro. Спасибо за помощь. Я добавил в jboss-deployment-structure.xml, но все равно получаю ту же ошибку. Могу ли я узнать, какая разница делает атрибут экспорта. –
Karthik
Я использовал это для приложения, которое использует весну в JBoss Wildfly. Через maven я задал масштаб пружинных зависимостей «предоставлен», так что я использую для приложения только пружинные зависимости, обеспечиваемые модулем пружины в JBoss. Атрибут «Экспорт» используется для экспорта зависимостей, которым могут потребоваться другие модули. '<модуль имя = "org.springframework" экспорт = "истинный"> \t \t \t <включают путь = "META-INF **"/> \t \t <включают путь = "орг **"/> \t ' –
Omoro