Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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 1&;支柱2_Java_Struts2_Struts1 - Fatal编程技术网

Java 运行Struts 1&;支柱2

Java 运行Struts 1&;支柱2,java,struts2,struts1,Java,Struts2,Struts1,我正在尝试使用Struts1和Struts2运行应用程序。原因是它正在被迁移,但有很多Struts1我们想一点一点地做,而不是大爆炸。。。我知道这是可以做到的 无论如何,我无法让我的S2过滤器拾取我的URL,当我访问*.action URL时,不会给出任何错误!所有S1页面仍然可以正常工作。我的web XML包含S2配置 <filter> <filter-name>struts2</filter-name> <filter-class&g

我正在尝试使用Struts1和Struts2运行应用程序。原因是它正在被迁移,但有很多Struts1我们想一点一点地做,而不是大爆炸。。。我知道这是可以做到的

无论如何,我无法让我的S2过滤器拾取我的URL,当我访问*.action URL时,不会给出任何错误!所有S1页面仍然可以正常工作。我的web XML包含S2配置

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

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

支柱2
org.apache.struts2.dispatcher.filter.strutspreadexecutefilter
支柱2
*.行动
还有s1servlet

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

行动
org.apache.struts.action.ActionServlet
2.
行动
*.做
我还建立了一个简单的TestStruts2Action类扩展操作,它实际上只包含一个syso来证明它达到了操作。XMLconfig'

  <package name="main" extends="struts-default">
      <action name="testStruts2" class="com.myclass.TestStruts2Action">
         <result name="success">test/testStruts2.jsp</result>
      </action>
  </package>

test/testStruts2.jsp
当点击URL/MyApp/testStruts2.action时,我得到的只是applications 404页面

我的JSP实际上只是一个HelloWorld示例,保存在test/testStruts2.JSP下

有什么想法吗?由于在启动过程中没有错误,或者当我点击URL时没有记录错误,我不知道下一步要尝试什么


尝试添加名称空间

好的,我知道我做错了什么

我的struts.xml文件与WEB-INF中的旧struts配置文件放在一起,而新过滤器没有读取它。我过去常常弄明白这一点,并在web.xml中修改了我的过滤器声明

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  <init-param>
    <param-name>config</param-name>
    <param-value>struts-default.xml,struts-plugin.xml,struts.xml</param-value>
  </init-param>

支柱2
org.apache.struts2.dispatcher.filter.strutspreadexecutefilter
配置
struts default.xml、struts plugin.xml、struts.xml

然而,这引起了我的注意

@亚历山大

'定义xml文件的顺序也很重要。例如,如果struts.xml中的struts default包(来自struts default.xml)尚未加载,则无法对其进行扩展。”


@AleksandrM您的意思是,如果移动struts.xml位置,则无法在包声明中扩展struts默认值???

启动时是否出现任何错误?尝试将
namespace=“/”
添加到
package
。您正在使用哪个版本的S2?@AleksandrM尝试添加namespace=“/”和相同的。。。使用S2 2.5.10,启动时零错误,访问除404页面以外的URL时记录零错误!我被难住了。我很想知道你是如何将s1迁移到s2的。你能提供一个你的移民故事的链接吗?(我参与了一个从s1到s2的项目)@johnm在一年半前参与了这个项目,现在我记不清多少了,它在我的记忆中已经被遗忘了。。。我们所做的是发现S1和S2之间的共同点,然后通过代码运行“查找并替换脚本”来更改所有内容-工作得也很好我记得的一件事是我使用泛型来指示每个动作的形式,并使用抽象类在S2中动态生成这些形式,同时重用旧形式验证方法等。。。抱歉,我没有任何可以共享的外部内容:(