最近在学习OKHttp,这是个Android的网络框架,因此需要在本地搭建服务器。因为主要是学习OKHttp的框架,所以服务器只是搭建了最基础的部分。
Tomcat8.5+Struts 2.5.16 +MyEclipse直接搜索下载并解压即可。
1、新建一个web project。
2、Project name自己填写,在Target runtime中点击Add new Runtime
3、选择8.5的版本
4、在Tomcat installation directory选择下载解压后的Tomcat路径,JRE选择1.8,之后点击finish,这样Tomcat就ok了。
5、现在配置struts,解压下载struts,进入到apps目录下,有两个war文件,struts2-rest-showcase.war和struts2-showcase.war,这边使用struts2-rest-showcase.war,将文件后缀改名为rar并解压。得到如下界面
6、进入WEB-INF/lib文件夹下,会看到有很多jar包,将所有jar包复制黏贴到项目路径下的WEB-INF/lib目录下。
7、在WEB-INF下有个web.xml文件,同样将其拷贝到项目的WEB-INF路径下。并删除一些不必要的配置项,
<web-app id="starter" 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>Struts 2 Rest Example</display-name>
<!-- Filters -->
<!-- START SNIPPET: filter -->
<filter>
<filter-name>action2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- END SNIPPET: filter -->
<filter-mapping>
<filter-name>action2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Welcome file lists -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Restricts access to pure JSP files - access available only via Struts action -->
</web-app>
8、在WEB-INF/classes目录下有个struts.xml文件,同样将其复制到项目的src目录下,并进行修改。
<struts>
<!-- Overwrite Convention -->
<constant name="struts.convention.action.suffix" value="Controller" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.convention.action.mapAllMatches" value="true" />
<constant name="struts.action.extension" value="action,," />
<constant name="struts.convention.package.locators" value="example" />
</struts>
9、项目变成了如下:
10、在src中新建包并新建类,这里只是为了验证是否搭建成功,因此不整太复杂的,一定要继承ActionSupport。
package com.test;
import com.opensymphony.xwork2.ActionSupport;
public class ActionForTest extends ActionSupport {
public void test() {
System.out.println("Success!!!");
}
}
11、在struts.xml中配置test方法。action中name可以自己取,class为刚才新建的class名称,method为方法名。struts.xml就变成了这样:
<struts>
<!-- Overwrite Convention -->
<constant name="struts.convention.action.suffix" value="Controller" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.convention.action.mapAllMatches" value="true" />
<constant name="struts.action.extension" value="action,," />
<constant name="struts.convention.package.locators" value="example" />
<package name="strutsTest" extends="struts-default">
<action name="test" class="com.test.ActionForTest" method="test"></action>
</package>
</struts>
12、在Servers中找到8.5将项目添加进去。并启动server,右击server下的项目名,点击Open in web browser,之后在地址后面追加你定义的方法名,这里为test。回车,之后会看到在控制台有Success!!!输出
需要注意的点是如果使用的是Struts2.5版本需要将struts2-rest-plugin-2.5.16.jar包从项目中移除,否则会报Wrong method was defined as an action method: index的异常,原因暂时没有跟进,如果有大神知道原因还请告知下,谢谢!