当前位置: 首页 > 知识库问答 >
问题:

wildfly 12和spring java配置,不工作,403错误

轩辕欣可
2023-03-14

几个小时以来,我一直在尝试将这个简单的应用程序应用到WildFly12上,而WildFly12在Tomcat上运行得很好。以下是日志和配置

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));
    }

应用配置

@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-deployment-structure.x

<?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>

pluto.war是应用程序,我被403禁止了,我尝试了多种方法,我觉得Jboss根本不能选择dispatcher servlet,我在Jboss 7.1中使用了spring,但它是xml配置,我没有使用maven,所以这里没有pom.xml,同样的配置在Tomcat8中运行良好。

删除自定义库并将所有库放入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个答案

巫马望
2023-03-14

经过长时间痛苦的调试,以及对spring和wild fly不同版本的反复试验,我得出了一个结论,我的由spring 4.3组成的自定义模块不能在wild fly 12上运行。

无论如何,解决方案是将应用服务器降级为wildfly11。同样的模块和.war在ver 11上顺利运行。

我在第12版启用了调试日志,但日志中仍然没有任何可能显示根本原因的日志,我认为wildfy第12版和Spring有一些相关的bug。

到目前为止,这似乎工作良好,如果任何人能够在WildFly12上找到使用java配置的spring解决方案,请发布一个答案:)

 类似资料:
  • 在Spring Hibernate XML配置中,我有 我知道SpringJava配置的等价物如下:LocalSessionFactoryBuilder(dataSource())。AddAnnotatedClass(Foo.class)。buildSessionFactory(); 我的问题是,如果我不使用LocalSessionFactoryBuilder类,而是使用HibernateJpaV

  • (spring)SecurityConfig.java LoginController.java

  • 我正试图按照web上的指南使用Spring Security保护我的网站。 所以在我的服务器端,我有以下类。 我的: 我的控制器: 让我非常困惑的是服务器不响应/方法,而方法工作正常。顺便说一句,我在客户端使用。 例外情况包括: 我在网上搜索了好几天了。还是没有线索。请帮忙。非常感谢

  • 那是我学习Kafka的初期。我正在检查我本地机器中的每一个Kafka属性/概念。 所以我遇到了属性,下面是我的理解。如果我误解了什么,请纠正我。 将消息发送到主题后,必须将消息写入至少关注者数。 还包括引导。 如果可用活动代理的数量(间接地,在同步副本中)少于指定的,则生产者将引发发布消息失败的异常。 以下是我创建上述场景所遵循的步骤 在本地启动了3个代理,代理ID为0、1和2 创建了主题insy

  • 我更改为配置文件和.htaccess文件。以下文件, Config.php .htaccess 重新启动发动机 秘书长/52322/ 重写Cond%{REQUEST_FILENAME}!-f 重写cond%{REQUEST_FILENAME}-D 重写规则 ^(.*)$ index.php?/1美元[L, QSA] 发生错误在此服务器上找不到请求的URL /52322/login/。 请帮帮我。

  • 下面是我正在使用的配置。消息没有错误,从exchange到队列都可以正常工作,并且侦听器可以进行转换,这很好。对于错误消息,我希望发生的是,当我抛出AmqpRejectAndDontRequeueException时,“rabbitQueue”将消息转发到死信交换,并最终进入“rabbitErrorQueue”但死信交换或队列上没有任何活动。有人知道我做错了什么吗?