wildfly 12和spring java config,无法正常工作,403错误

时间:2018-05-19 17:11:04

标签: spring jboss wildfly

我正在努力将这个简单的应用程序用于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错误

1 个答案:

答案 0 :(得分:0)

经过长时间的痛苦调试以及不同版本的spring和wild fly的试错,我得出结论,我的自定义模块由 spring 4.3组成,不在wildfly 12上运行。< /强>

无论如何解决方案是将app server降级为wildfly 11. 同样的模块和.war在版本11上顺利运行。

我在版本12上启用了调试日志,在日志中仍然没有任何内容可能显示根本原因,我认为有一些与野生版本12和spring相关的错误。

截至目前,这似乎工作正常,如果有人能够在野生动物12上找到带有java配置的弹簧解决方案,请发回答:)