WebService环境配置
一、准备工具:
IDE:eclipse luna Service Release 1a(4.4.1)
JDK:1.7
Tomcat:apache-tomcat-7.0.63-windows-x64
Axis:axis-1_4 下载地址:http://webscripts.softpedia.com/Apache-Axis/download/
这个Axis官网没办法下载。
借鉴文章:http://blog.csdn.net/tanguang_honesty/article/details/38660961
http://blog.csdn.net/xw13106209/article/details/7049614/
解压axis-src-1_4
把解压后的axis放到tomcat的webapp下
二、配置Eclipse环境
Jdk:
windowpreferencesinstalled jresAddNextDirectoryFinshok
配置tomcat :window–>preferences–>runtime environame–>add 选择本地磁盘的tomcat
三、新建web工程
注意:这边Dyname webmodule version我选中的2.5版本,第一次选的3.0好像有个报错,看到一篇文章是因为版本问题。
这边我已经建成了Test001
lib:把axis-1_4 lib下的jar包copy到Test001 WEB-INF下的lib内
在WEB-INF 下新建Servie-config.wsdd,
service-config配置,红色为必填
<ns1:service name="Calcute" provider="java:RPC">
<ns1:parameter name="allowedMethods" value="*"/>
<ns1:parameter name="className" value="com.wuyl.service.WebServiceTest"/>
</ns1:service>
<ns1:service name="AdminService" provider="java:MSG">
<ns1:parameter name="allowedMethods" value="AdminService"/>
<ns1:parameter name="enableRemoteAdmin" value="false"/>
<ns1:parameter name="className" value="org.apache.axis.utils.Admin"/>
<ns1:namespace>http://xml.apache.org/axis/wsdd/</ns1:namespace>
</ns1:service>
<ns1:transport name="http">
<ns1:requestFlow>
<ns1:handler type="URLMapper"/>
</ns1:requestFlow>
<ns1:parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
<ns1:parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<ns1:parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
</ns1:transport>
注意:如果不写AdminService 在生成webservice 因为找不到adminservice的地址
异常错误:
IWAB0489E Error when deploying Web service to Axis runtime
axis-admin failed with {http://schemas.xmlsoap.org/soap/envelope/}Client The service cannot be found for the endpoint reference (EPR)
<ns1:service name="AdminService" provider="java:MSG">
<ns1:parameter name="allowedMethods" value="AdminService"/>
<ns1:parameter name="enableRemoteAdmin" value="false"/>
<ns1:parameter name="className" value="org.apache.axis.utils.Admin"/>
<ns1:namespace>http://xml.apache.org/axis/wsdd/</ns1:namespace>
</ns1:service>
Web.xml配置:
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet>
完成基本配置,接下来编写接口和实现类
接口类:ITestService.java
package com.wuyl.service;
public interface ITestService {
public String queryName(String name);
public String querySex(String sex);
public String queryAge(String age);
public String showAllwu();
public String showAll();
public String helloWord(String str);
}
接口实现类TestService
package com.wuyl.service;
public class TestService implements ITestService{
@Override
public String queryName(String name) {
// TODO Auto-generated method stub
return "我的名字"+name;
}
@Override
public String querySex(String sex) {
// TODO Auto-generated method stub
return "我的性别"+sex;
}
@Override
public String queryAge(String age) {
// TODO Auto-generated method stub
return "我的年龄"+age;
}
@Override
public String showAllwu() {
// TODO Auto-generated method stub
return "你的名字";
}
@Override
public String showAll() {
// TODO Auto-generated method stub
return "hello world";
}
@Override
public String helloWord(String str) {
// TODO Auto-generated method stub
return "我的小狗名字叫:"+str;
}
}
发布webservice :右键new select a wizardwebserviceNext
Service implementation :选择实现接口的webservice类
Service implementation下面的滑块滑到Start service位置
Client type 下面的滑块划到Test Service 位置
Configuration :点击Servcer runtime,配置如下
OK Next
Next
如果新建webservice时没有启动服务,这边会提示启动服务,点击Start server
Next
服务启动完点击Next
浏览器测试接口方法
如果不点击Launch 直接点Next
点击Finsh
生成的测试项目结构
可以自行编写自己的测试类,不要断掉接口的服务,否则掉不到
完成。
关于webservice已经发布,再次更改接口内的方法同步问题:
只需要重新发布就可以,即重复发布的步骤。
作为初学webservice,记录下详细步骤,便于其他小伙伴参考。在这个过程折腾的错误很多,当时最大的阻力是那个一直报adminService一直找不到路径,
在查其他错误的时候看到一篇文章说admin路径找不到,然后就加了下 真的解决了。