既存の Struts 2 アプリケーションを変換して、残りのベースのサービスも提供するようにしています。
struts2-rest プラグインと struts-convention プラグインの 2 つのプラグインを使用しました。
これらに加えて、上記で asm jar にある class not found 例外が発生したため、asm.jar も使用しました。
私は両方の機能を持ちたいと思っています..私の通常のStrutsアクションマッピングも残りのURLと一緒に動作するはずです。
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Overwrite Convention -->
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>
<constant name="struts.mapper.class"value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper" />
<constant name="struts.mapper.prefixMapping" value="/rest:rest,:struts" />
<package name="userlogin" extends="struts-default" namespace="/">
<action>
......
</action>
</package>
<package name="secureAction" extends="struts-default,json-default"
namespace="/secure">
<interceptors>
...............
</interceptors>
<default-interceptor-ref name="secureStack" />
<global-results>
.............
</global-results>
<global-exception-mappings>
..............
</global-exception-mappings>
</package>
<include file=".....xml" />
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
.........
<display-name>strutsTest</display-name>
<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-list>
<servlet>
<description></description>
<display-name>Logger</display-name>
<servlet-name>Logger</servlet-name>
<servlet-class>...........</servlet-class>
<init-param>
<param-name>log4j-properties-location</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Logger</servlet-name>
<url-pattern>/Logger</url-pattern>
</servlet-mapping>
私はエラーを見つけることができません..
strutsアクションベースのマッピングまたはrest urlのいずれかを実行したときに画面に表示されるもの..is:
Struts has detected an unhandled exception:
Messages:
com.thoughtworks.xstream.XStream
com/thoughtworks/xstream/XStream
java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
File: org/apache/catalina/loader/WebappClassLoader.java
Line number: 1,516