Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 部署时找不到Struts dispatcher_Java_Spring_Jsp_Struts2_Weblogic - Fatal编程技术网

Java 部署时找不到Struts dispatcher

Java 部署时找不到Struts dispatcher,java,spring,jsp,struts2,weblogic,Java,Spring,Jsp,Struts2,Weblogic,当我尝试在WL Server 9.2上运行我的Spring+Struts 2项目时(我必须使用这个版本,所以请不要要求我使用更新版本的WL Server),我遇到了这个错误 浏览器中的URL地址为: http://localhost:7003/SpringStrust2/ 完整堆栈跟踪: The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associat

当我尝试在WL Server 9.2上运行我的Spring+Struts 2项目时(我必须使用这个版本,所以请不要要求我使用更新版本的WL Server),我遇到了这个错误

浏览器中的URL地址为:

http://localhost:7003/SpringStrust2/
完整堆栈跟踪:

The Struts dispatcher cannot be found.  This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]
at org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:60)
at org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44)
at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48)
at jsp_servlet.__user._jsp__tag0(__user.java:115)
at jsp_servlet.__user._jspService(User.jsp:12)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3269)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2019)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1925)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1394)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
这是我的web.xml:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
    <welcome-file>User.jsp</welcome-file>
</welcome-file-list>

您正在点击
User.jsp
文件(及其S2标记),而没有运行错误所述的操作

您可以:

  • 从欢迎文件重定向到Struts操作(一种常见的技术,而且很简单)
  • 将容器配置为允许操作作为欢迎文件
  • 从欢迎文件中删除S2标记

    • 我也有同样的问题。我的Struts 2应用程序在本地主机上运行,就像黄油上的刀子一样,但在VPS上失败了。最后解决方案是项目中的Web Inf文件夹与Tomcat的Web Inf文件夹冲突

      因此,将项目/web inf/web.xml内容移动到 usr/local/easy/share/easy-tomcat7/conf(用于Cent OS)

      并将JAR从项目/web inf/lib移动到 usr/local/easy/share/easy-tomcat7/lib(用于Cent OS)

      对于其他操作系统,在各自的路径上执行相同的操作


      希望这会有所帮助。

      您认为您在此处发布的信息是否足够?如果你的Struts版本已经过时,你应该尽快升级到最新版本,如果你想得到帮助的话。好的,我对web.xml文件中的欢迎文件列表部分做了评论。当我尝试部署它时,出现了一个错误:“您缺少一个依赖项。这是一个新错误,也是一个新问题。
      <struts>
      <constant name="struts.enble.DynamicMethodInvocation" value="false" />
      <constant name="struts.devMode" value="true" />
      <constant name="struts.custom.i18n.resources" value="myapp" />
      
      <package name="default" extends="struts-default">
          <action name="user" class="user">
              <result name="success">/success.jsp</result>
              <result name="input">/User.jsp</result>
          </action>
      </package>
      </struts>
      
      <%@ taglib prefix="s" uri="/struts-tags"%>
      <html>
      <head>
          <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
          <title>Spring + Struts2</title>
      </head>
      
      <body>
          <s:form action="user" method="addUser">
              <s:textfield name="username" key="user.name" />
              <s:submit key="submit" />
          </s:form>
      </body>
      </html>
      
      antlr-runtime-3.0.jar 
      commons-fileupload-1.2.1.jar
      commons-io-1.3.2.jar
      commons-lang3-3.1.jar
      commons-logging-1.1.jar
      freemarker-2.3.13.jar 
      junit-3.8.1.jar 
      ornl-2.6.11.jar 
      org.springframework.asm-3.9.9.M3.jar
      org.springframework.beans-3.0.0.M3.jar
      org.springframework.context-3.0.0.M3.jar
      org.springframework.core-3.0.0.M3.jar
      org.springframework.web-3.0.0.M3.jar
      org.springframework.web.servlet-3.0.0.M3.jar
      struts2-convention-plugin-2.1.6.jar 
      struts2-core-2.1.6.jar
      struts2-spring-plugin-2.1.6.jar
      xwork-2.1.2.jar