提示:假设我有个项目为 devpstd.ws
1、新建文件夹(若无)
1)ws下新建一个
webservice文件夹(文件名可自定义,一般就叫webservice吧)

2)webservice下新建一个
spring文件夹(放实现类,文件名同上)
2、新建抽象类
1)
webservice下新建一个抽象类,如:
ITestWebservice

2)让该抽象类继承
ISysWebservice
package com.landray.kmss.devpstd.ws.webservice;
import javax.jws.WebService;
import com.landray.kmss.sys.webservice2.interfaces.ISysWebservice;
@WebService
public interface ITestWebservice extends ISysWebservice {
String testWsMethod(String param1, String param2);
}
3、新建实现类
1)
spring下新建一个
ITestWebservice的实现类,如:
TestWebserviceImp
package com.landray.kmss.devpstd.ws.webservice.sping;
import javax.jws.WebService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.landray.kmss.devpstd.ws.webservice.ITestWebservice;
import com.landray.kmss.web.annotation.RestApi;
@Controller
@RequestMapping(value = "/api/test", method = { RequestMethod.GET, RequestMethod.POST })
@RestApi(docUrl = "/#", name = "testRestserviceImp", resourceKey = "0Liquid-测试Restservice")
// docUrl:rest帮助文档,name:rest服务标识,resourceKey:rest服务名称(在ekp系统中显示)
@WebService
public class TestWebserviceImp implements ITestWebservice {
@Override
// 解析参数数据注解
@ResponseBody
// 映射方法的访问地址 http://localhost:8089/api/test/testRestserviceImp/testMethod
// 本地运行需注意修改ContextPath为'/'
@RequestMapping(value={"/testMethod"}, method = {GET, POST})
public String testWsMethod(@RequestBody(required = false) String body) {// required = false即无需传入参数也可以调用
System.out.println("Webservice---- start");
System.out.println("TestWebserviceImp.testWsMethod executed successfully!");
System.out.println("body = " + body);// str = {"str":"1234"}
System.out.println("Wevservice---- end");
return "TestWebservice001Imp.testWsMethod executed successfully!";
}
}
4、修改配置文件
1)实现类注入spring容器,例如在:WebContent\WEB-INF\KmssConfig\devpstd\ws\sping.xml中加入
<
bean
id=
"testWebserviceImpTarget"
class=
"com.landray.kmss.devpstd.ws.webservice.sping.TestWebserviceImp"
>
</
bean
>
id属性为自定义,一般以 类名去掉Imp+Target
class属性为所写实现类的路径
2)修改plugin.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<plugin
xsi:schemaLocation="http://www.example.org/plugin-config ../../plugin.xsd"
xmlns="http://www.example.org/plugin-config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extension
point="com.landray.kmss.sys.webservice2">
<item
name="registry">
<param
name="serviceName"
value="0Liquid-测试webservcie" />
<param
name="serviceClass"
value="com.landray.kmss.devpstd.ws.webservice.sping.TestWebserviceImp" />
<param
name="serviceBean"
value="testWebserviceImpTarget" />
<param
name="serviceDoc"
value="/km/review/km_review_webservice/kmReviewWebServiceHelp.jsp" />
</item>
</extension>
</plugin>
serviceName:webservice在ekp系统中显示的名称,需唯一
serviceClass:webservice实现类全路径
serviceDoc:文档路径
5、Project->Clean编译

6、Server -> Debug

7、Ekp中导入res&web services

8、需配置访问策略,外部系统才可调用相应接口
