http://www.blogjava.net/nokiaguy/archive/2009/01/02/249556.html
时隔一年后,又开始做SOA,照着下面这个例子做总是无法自动生成。原因是我一开始并没有tomcat,后来装好后还是不行,看了网上一个帖子说,要把tomcat移除了重新再add就可以了,于是照着做了,果然好了。折腾了好久。。。。
点Window-preference-server—runtime environments,选中apache tomcat v6.0,然后进行remove和add操作。
http://wiki.eclipse.org/Creating_a_Bottom-Up_Java_Web_Service
其核心就是写一个简单的java类,然后点右键点create web service;按照步骤点好了后,可以看到在Webcontent的wsdl目录里生成了Converter.wsdl文件,右击该文件可以发布、生成客户端等。
生成客户端时,在弹出的画面中,点击Client Project:***,改为***Client,要不然就把你建的***服务端的代码覆盖了。eclipse会自动重新创建一个project叫***Client,然后创建一个测试类:
import java.rmi.RemoteException;
public class Test {
/**
* @param args
* @throws RemoteException
*/
public static void main(String[] args) throws RemoteException {
// TODO Auto-generated method stub
//Converter c = new ConverterProxy("http://***.***.**.***:8080/WS1/services/Converter/"); //It doesn't work.
Converter c = new ConverterProxy("htthttp://***.***.**.***:8080WS1/services/Converter"); //It works.
//Converter c = new ConverterProxy(); //It works.
float f = 100;
System.out.println(c.celsiusToFarenheit(f));
}
}
注意:http://***.***.**.***:8080/WS1/services/Converter/是在文件ConverterServiceLocator中的下面发现的:
private java.lang.String Converter_address = "http://localhost:8080/WS1/services/Converter";
好像有时候并不一定时8080端口,所以要到ConverterServiceLocator查看一下确认。
http://www.eclipse.org/webtools/jst/components/ws/M3/tutorials/TopDownWebService.html
按照上述流程做完后,如果需要做客户端,请执行下面的操作
import java.rmi.RemoteException;
public class Test {
/**
* @param args
* @throws RemoteException
*/
public static void main(String[] args) throws RemoteException {
// TODO Auto-generated method stub
AreaService_PortType as = new AreaServiceProxy("http://localhost:8080/TopDownWS/services/AreaServiceSOAP");
System.out.println(as.calculateRectArea(new Dimensions(10,20)));
}
}