MyEclipse用xfire插件写第一个Web service接口的程序步骤详解

1. 开发环境:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

JDK 1.5;MyEclipse6;tomcat 5.5;Windows XP;XFire(作为MyEclipse的插件)

 

2. MyEclipse中添加XFire的过程:

 

1. go to the Help menu, select "Software Updates" and then select "Find and Install."

 

2. Select "Search for new features to install" and click Next.

 

3.Select "Create New Remote Site" and enter "XFire" as the name and http://dist.codehaus.org/xfire/update/ as the eclipse update site.

 

4.Select OK.

 

5.Select Finish

 

3.开发步骤如下:

 

1.创建工程

 

打开MyEclipse,新建一个Web Service工程。如下图:

 

1.jpg;图2.jpg;3.jpg;

 

创建完成后,打开生成的web.xml文件,可以看到XFire已经配置好了。配置如下:

 

<?xml version="1.0" encoding="UTF-8"?>

 

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 

<servlet>

 

<servlet-name>XFireServlet</servlet-name> <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>

 

<load-on-startup>0</load-on-startup>

 

</servlet>

 

<servlet-mapping>

 

<servlet-name>XFireServlet</servlet-name>

 

<url-pattern>/services/*</url-pattern>

 

</servlet-mapping>

 

<welcome-file-list>

 

<welcome-file>index.jsp</welcome-file>

 

</welcome-file-list>

 

</web-app>

 

2.创建WebService服务

 

1)在src下创建两个包“wstest.server”和“wstest.client,用来保存服务端和客户端程序。然后开始创建服务端程序,如下图:

 

点击图4.jpg中左边第一那个带“+”的小图标(即:New Web Service的图标),然后出现图5.jpg,选中next,得到图6.jpg,填写信息之后Finish,工程中生成了两个文件,如图7.jpg;同时在WebServicesservices.xml中会生成以下代码,请保存一份,后面有用到。

 

<?xml version="1.0" encoding="UTF-8"?>

 

<beans xmlns="http://xfire.codehaus.org/config/1.0">

 

<service>

 

<name>MyService</name>

 

<serviceClass>wstest.server.IMyService</serviceClass>

 

<implementationClass>

 

wstest.server.MyServiceImpl

 

</implementationClass>

 

<style>wrapped</style>

 

<use>literal</use>

 

<scope>application</scope>

 

</service></beans>

 

将生成的接口和默认实现,改写如下:

 

package wstest.server;

 

//Generated by MyEclipse

 

public interface IMyService {

 

public String sayHello(String user);

 

}

 

 

package wstest.server;

 

//Generated by MyEclipse

 

public class MyServiceImpl implements IMyService {

 

public String sayHello(String user) {

 

return "hi," + user;

 

}

 

}

 

至此,服务端代码已经完成。

 

3.测试服务端代码

 

测试依赖与Servlet容器Tomcat,需要将做好的服务端打包部署到tomcat上,然后启动。才可以进行测试。假设你已经配置了Tomcat服务器(这个应该不用我仔细描述吧!),并完成了WebService服务端的部署。那么,现在就启动Tomcat,然后:

 

在图8.jpg中点击左边第二个图标(Launch Web Services Explorer)

 

得到图9.jpg的截图,输入访问地址:http://localhost:8000/xfire/services/MyService?wsdl ,然后go一把!(注意端口是你自己tomcat的端口,默认是8080,我已经修改为8000了),之后得到10.jpg;然后将导航中的MyServiceHttpBinding前面的”+”点开,再点击”sayHello”得到了图11.jpg;数据参数,点击go之后,如果能出现图12.jpg上面的结果,表明测试成功了。(注意,服务不要停止)

 

4.生成客户端代码

 

点击New Web Service的图标(上面有),出现图13.jpg,这次选择下面的,next后按照图14.jpg填写之后一路next直到finish.这是可以看到工程的截图15.jpg,我也不知道什么原因,把本该在client下的ObjectFactory.java,package-info.java,SayHello.java,SayHelloResponse.java放到了server文件夹下,这个不用管,在client文件夹下也生成了一个MyServiceImpl.java的文件,这个文件不需要,直接删除了。

 

接下来需要做的工作是:

 

(1):打开MyServiceClient.java文件,可以看到一个main方法:

 

public static void main(String[] args) {

 

 

MyServiceClient client = new MyServiceClient();

 

//create a default service endpoint

 

MyServicePortType service = client.getMyServiceHttpPort();

 

//TODO: Add custom client code here

 

//

 

//service.yourServiceOperationHere();

 

 

System.out.println("test client completed");

 

System.exit(0);

 

}

 

具体的每个方法什么用,我暂时不知道,但看到//TODO: Add custom client code here

 

//

 

//service.yourServiceOperationHere();

 

这个几行大家应该会它的意思,好的,我们现在就写几行测试代码,:

 

//TODO: Add custom client code here

 

//

 

//service.yourServiceOperationHere();

 

String helloString = service.sayHello("java");

 

System.out.println(helloString);

 

 

System.out.println("test client completed");

 

System.exit(0);

 

好了,现在终于可以做测试了,运行MyServiceClient.java(里面有main方法,做应用程序运行就可以了),运行之后可以在控制台看到:

 

hi,java

 

test client completed

 

这个就表示测试成功了。具体的每个类什么意思,你可以自己慢慢研究一番。

 

 

 

你可能感兴趣的:(tomcat,Web,MyEclipse,servlet,webservice)