我正在努力将这个简单的应用程序用于wildfly 12,这在tomcat上工作正常。任何以下是log和config
Webappinitializer
@Configuration
public class ListenerConfig implements WebApplicationInitializer{
@Override
public void onStartup(final ServletContext servletContext) throws ServletException {
final AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext();
root.setServletContext(servletContext);
root.scan("com.app");
root.refresh();
final Dynamic servlet = servletContext.addServlet("spring", new DispatcherServlet(root));
servlet.setLoadOnStartup(1);
servlet.addMapping("/*");
servletContext.addListener(new ContextLoaderListener(root));
}
ApplicationConfig
@Configuration
@ComponentScan(basePackages = "com.app")
@PropertySource(value = { "classpath:jdbc.properties" })
@EnableTransactionManagement
public class ApplicationConfig {
MVCConfig
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter{
@Override
public void configureMessageConverters( List<HttpMessageConverter<?>> converters ) {
converters.add(converter());
}
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/html/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
的JBoss部署-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="javax.api"/>
<module name="javax.jms.api"/>
<module name="javax.servlet.api"/>
<module name="org.apache.log4j"/>
<module name="pluto.lib" />
</dependencies>
</deployment>
</jboss-deployment-structure>
注意我没有提供完整的代码,如果需要,会发布。
最后我在日志中得到的是
22:36:39,374 INFO [org.jboss.as.connector.subsystems.datasources] (MSC服务线程1-2)WFLYJCA0001:绑定数据源 [java:jboss / datasources / ExampleDS] 22:36:40,290 INFO [org.wildfly.extension.undertow](MSC服务主题1-4)WFLYUT0006: Undertow HTTPS侦听器https侦听127.0.0.1:8443 22:36:40,504 INFO [org.jboss.ws.common.management](MSC服务主题1-3) JBWS022052:启动JBossWS 5.2.0.Final(Apache CXF 3.2.2) 22:36:43,005 INFO [org.infinispan.factories.GlobalComponentRegistry] (MSC服务主题1-4)ISPN000128:Infinispan版本:Infinispan '巴士底狱'9.1.6.Final 22:36:43,450 INFO [org.jboss.as.clustering.infinispan](ServerService线程池 - 62) WFLYCLINF0002:从ejb容器启动客户端映射缓存 22:36:44,314 INFO [org.wildfly.extension.undertow](ServerService 线程池 - 64)WFLYUT0021:已注册的Web上下文:'/ Pluto'for server'default-server'22:36:44,412 INFO [org.jboss.as.server] (ServerService线程池 - 37)WFLYSRV0010:已部署“Pluto.war” (runtime-name:“Pluto.war”)22:36:44,857 INFO [org.jboss.as.server] (控制器启动线程)WFLYSRV0212:恢复服务器22:36:44,863 INFO [org.jboss.as](控制器启动线程)WFLYSRV0060:Http 管理界面监听http://127.0.0.1:9990/management 22:36:44,863 INFO [org.jboss.as](控制器启动线程) WFLYSRV0051:管理控制台监听http://127.0.0.1:9990
Pluto.war是应用程序,我得到了403禁止,我尝试了多个东西,我觉得Jboss根本无法选择调度程序servlet,我使用spring和jboss作为7.1,但后来它是xml config ,我不使用maven所以这里没有pom.xml,这个相同的配置在tomcat 8中运行正常。
删除自定义lib并将所有lib放在web-inf / lib文件夹中并从web-inf中删除jboss-deployment-structure.xml然后它正常工作。在自定义模块的情况下,我做错了什么?我在modules文件夹下创建了pluto.lib.main,并将其添加到standalone.xml
中 <subsystem xmlns="urn:jboss:domain:ee:4.0">
<global-modules>
<module name="pluto.lib" slot="main"/>
</global-modules>
然后我面临403错误
答案 0 :(得分:0)
经过长时间的痛苦调试以及不同版本的spring和wild fly的试错,我得出结论,我的自定义模块由 spring 4.3组成,不在wildfly 12上运行。< /强>
无论如何解决方案是将app server降级为wildfly 11. 同样的模块和.war在版本11上顺利运行。
我在版本12上启用了调试日志,在日志中仍然没有任何内容可能显示根本原因,我认为有一些与野生版本12和spring相关的错误。
截至目前,这似乎工作正常,如果有人能够在野生动物12上找到带有java配置的弹簧解决方案,请发回答:)