JBoss wildfly 10禁止访问spring mvc Web应用程序
Posted
技术标签:
【中文标题】JBoss wildfly 10禁止访问spring mvc Web应用程序【英文标题】:JBoss wildfly 10 forbidden access for spring mvc web app 【发布时间】:2016-12-25 08:57:59 【问题描述】:我有一个运行在 JBoss 4.2 中的 spring mvc 应用程序。我正在尝试将此网络应用程序迁移到 JBoss wildfly 10(wildfly-10.0.0.Final 版本)。该应用程序部署成功,但是当我尝试访问 http://localhost:8080/myApp/ 时,服务器会返回 "Forbidden"。如果我尝试访问http://localhost:8080/myApp/web/buscador/init 服务器响应“未找到”。
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- char encoding -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myAppApplicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- servlet dispatcher de Spring -->
<servlet>
<servlet-name>myApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myAppApplicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myApp</servlet-name>
<url-pattern>/web/*</url-pattern>
</servlet-mapping>
<!-- DWR -->
<servlet>
<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- displaytag -->
<servlet>
<display-name>DisplaySource</display-name>
<servlet-name>DisplaySource</servlet-name>
<servlet-class>org.displaytag.sample.DisplaySourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplaySource</servlet-name>
<url-pattern>*.source</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>css</extension>
<mime-type>text/css</mime-type>
</mime-mapping>
<jsp-config>
<taglib>
<taglib-uri>http://displaytag.sourceforge.net</taglib-uri>
<taglib-location>/WEB-INF/tld/displaytag.tld</taglib-location>
</taglib>
</jsp-config>
<filter>
<filter-name>ResponseOverrideFilter</filter-name>
<filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ResponseOverrideFilter</filter-name>
<url-pattern>/web/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
这是一个请求映射:
@RequestMapping("/buscador/init")
public String initForm(ModelMap model, HttpServletRequest request)
//anadimos los datos de la gestion de incidencias al modelo
model.addAttribute(Constantes.ATTRIBUTE_OFICINA_CTA, oficinaCTA);
return Views.VIEW_BUSCADOR_OFICINA;
我认为这个问题是由于 spring-mvn 请求映射,因为使用另一个框架可以正常工作。
部署应用时的日志:
2016-08-19 08:23:22,611 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) WFLYSRV0027: Starting deployment of "myApp.war" (runtime-name: "myApp.war")
2016-08-19 08:23:27,178 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 75) WFLYUT0021: Registered web context: /myApp
2016-08-19 08:23:27,365 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0010: Deployed "myApp.war" (runtime-name : "myApp.war")
【问题讨论】:
您使用的是哪个版本的 Wildfly 10?如果可能,请使用此处的最新版本 wildfly.org/downloads 我使用的是 wildfly-10.0.0.Final 版本。我尝试使用 wildfly-9.0.2.Final 并获得相同的问题。谢谢@SkyWalker 您是否将其部署为 myApp.war?你有 jboss-web.xml 吗? 另外,在没有您的应用程序的情况下启动服务器。完成启动后,进行部署并将部署的日志条目粘贴到此问题上。部署它的上下文可能会显示在日志中。 @jpkrohling 我将其部署为 myApp.war。我没有 jboss-web.xml。我已经添加了日志。谢谢 【参考方案1】:战争终于被破坏了
【讨论】:
以上是关于JBoss wildfly 10禁止访问spring mvc Web应用程序的主要内容,如果未能解决你的问题,请参考以下文章