基于Eclipse、Tomcat、Axis开发WebService简单实例
2009-11-22 20:55
706 查看
1.首先建一个web工程,在buildpath里加入axis的相关包。(笔者推荐spring-framework-2.0.8-with-dependencies.zip里面几乎包含了java开发所能用到的所有的包。)
2.写一个最简单的java类,其中sayHello就是要发布的方法。
public class WebServiceTest {
public String sayHello(String name) {
return "Hello "+name+"!,this is an axis service.";
}
}
3.编写server-config.wsdd文件描述要发布的方法,放在web-inf目录下。
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler type="java:org.apache.axis.handlers.http.URLMapper"
name="URLMapper" />
<service name="SayHello" provider="java:RPC">
<parameter name="className"
value="qw.webservice.WebServiceTest" />
<parameter name="allowedMethods" value="sayHello" />
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
</requestFlow>
</transport>
</deployment>
4.配置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>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
5.用eclipse将工程部署到tomcat下,启动,如果报类没有定义那就是缺包,添加即可。
6.测试一下服务是否发布成功。在浏览器地址栏输入http://localhost:8080/WebService/services,其中 WebService是我的工程的名字,根据需要修改。页面应该显示我们发布的服务如下,点击wsdl链接还能显示自动生成的wsdl文件的内容。
sayHello
7.写客户端程序验证服务是否运行正常。
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class Test {
public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException {
String endpoint = "http://localhost:8080/WebService/services/SayHello";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL (endpoint));
call.setOperationName("sayHello");
String res=(String)call.invoke(new Object[]{"qw"});
System.out.print(res);
}
}
如果打印出Hello qw!那么恭喜你,你的第一个webservice发布成功了。
8.实际使用时,根据wsdl文件使用ant或axis提供的工具自动生成客户端类,然后使用,而不是用上面的方式,好处是采用上面的方式使用有时在序列化时会产生bug。
2.写一个最简单的java类,其中sayHello就是要发布的方法。
public class WebServiceTest {
public String sayHello(String name) {
return "Hello "+name+"!,this is an axis service.";
}
}
3.编写server-config.wsdd文件描述要发布的方法,放在web-inf目录下。
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handler type="java:org.apache.axis.handlers.http.URLMapper"
name="URLMapper" />
<service name="SayHello" provider="java:RPC">
<parameter name="className"
value="qw.webservice.WebServiceTest" />
<parameter name="allowedMethods" value="sayHello" />
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
</requestFlow>
</transport>
</deployment>
4.配置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>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
5.用eclipse将工程部署到tomcat下,启动,如果报类没有定义那就是缺包,添加即可。
6.测试一下服务是否发布成功。在浏览器地址栏输入http://localhost:8080/WebService/services,其中 WebService是我的工程的名字,根据需要修改。页面应该显示我们发布的服务如下,点击wsdl链接还能显示自动生成的wsdl文件的内容。
And now... Some Services
SayHello (wsdl)sayHello
7.写客户端程序验证服务是否运行正常。
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class Test {
public static void main(String[] args) throws ServiceException, MalformedURLException, RemoteException {
String endpoint = "http://localhost:8080/WebService/services/SayHello";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL (endpoint));
call.setOperationName("sayHello");
String res=(String)call.invoke(new Object[]{"qw"});
System.out.print(res);
}
}
如果打印出Hello qw!那么恭喜你,你的第一个webservice发布成功了。
8.实际使用时,根据wsdl文件使用ant或axis提供的工具自动生成客户端类,然后使用,而不是用上面的方式,好处是采用上面的方式使用有时在序列化时会产生bug。
相关文章推荐
- java中用Axis开发webservice的简单实例
- 基于Eclipse开发OSGI的简单实例
- 基于Axis的WebService简单实例
- 1Tomcat+Axis+Eclipse实例讲解 2自己做的一个可以用的webservice,只是开始 (WebService好文)
- 基于Eclipse开发OSGI的简单实例
- eclipse+webservice开发实例【开发环境jdk1.7.0_67+eclipse-jee-luna+tomcat6.0.30+axis2-1.6.1(此为webservice的jar包)】
- axis1.4+eclipse+tomcat7.0创建简单webservice(大神绕道啊啊)
- 一个简单的模拟用户名是否存在的基于契约优先WSDL的webservice开发实例
- 基于Axis的WebService简单实例
- Eclipse下基于Axis的webservice开发
- Eclipse下基于Axis的webservice开发
- 关于eclipse+ tomcat 6.0+axis2发布webservice简单实例补充
- 创建简单Eclipse插件实现Axis WebService客户端
- spring+springmvc基于axis1.4的webservice开发与https配置(三)
- Spring+Axis1.4开发WebService实例
- 在基于Eclipse的开发过程中,出现了无法在Eclipse中添加Tomcat的
- 基于axis的Webservice开发流程
- Tomcat+Axis+Eclipse实例讲解 推荐
- 开发struts项目实例[eclipse+myeclipse+tomcat]
- 基于Tomcat5.0和Axis2开发Web Service应用实例