以下のファイルでは、 struts restful サービスを実装filterDispatcher
するために、フィルター クラスを から に変更しました。StrutsPrepareAndExecuteFilter
そうでなければ私は何も変えていません。
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>unsr</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml; classpath:applicationContext.xml</param-value>
</context-param>
<!-- Struts 2 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.devMode</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>struts.rest.defaultExtension</param-name>
<param-value>xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>
org.nea.individualprofile.web.struts.uniservs.ContextListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>org.abc.web.AppResources</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
<mime-mapping>
<extension>css</extension>
<mime-type>text/css</mime-type>
</mime-mapping>
<welcome-file-list>
<welcome-file>Index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/NotFound.jsp</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/NotFound.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/Error.jsp</location>
</error-page>
</web-app>
以下のファイルでは、struts restful サービスのすべての定数タグを追加しました。上記の 3 つは、過去 1 年間から正常に動作している既存のプロジェクトで既に使用している上部に含まれています。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd ">
<struts>
<include file="struts-default.xml"/>
<include file="struts-employee.xml"/>
<include file="struts-test.xml"/>
<constant name="struts.mapper.class" value="composite" />
<constant name="struts.mapper.composite" value="rest,struts"/>
<constant name="struts.convention.package.locators" value="example"/>
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>
</struts>
以下は、安らかなサービスのために作成したクラスです。従業員は私のPOJOクラスです
package org.abc.individualprofile.web.rest.example;
import java.util.Collection;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;
import org.abc.ia.services.util.uniserv.UniServGrantInfo;
import org.abc.spring.services.interfaces.uniservs.UniservSearchInterface;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.ValidationAwareSupport;
public class TestController extends ValidationAwareSupport implements ModelDriven<Employee> {
private UniServGrantInfo ugiObj = new UniServGrantInfo();
private Collection< Employee > list;
public HttpHeaders index(){
restGrantInfoList = uniservService.showAllgrants("ITSMAXK", "ALL", "ALL", "ALL");
return new DefaultHttpHeaders("index").disableCaching();
}
public Employee getModel() {
return (Employee) (list!= null ? list: ugiObj);
}
}
私は2つの問題に直面しています:
- この (localhost:7001/unsr/test.json) URL を入力すると、メソッドにヒットしません
- 私の既存の作業中のアプリケーションは現在機能していません