看ping通要连webServiceip或者浏览器访问址看能否现xml页面报错般网络通或端口问题。
java 调用webservice的各种方法:
利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务
1、首先建立一个Web services EndPoint:
2、使用 apt 编译 Hellojava(例:apt -d [存放编译后的文件目录] Hellojava ) ,会生成 jaws目录
3、使用java HelloHello运行,然后将浏览器指向>
4、使用wsimport 生成客户端
使用如下:wsimport -p -keep >
这时,会在当前目录中生成如下文件:
5、客户端程序:
一、利用jdk web服务api实现,这里使用基于SOAP message的Web服务
①首先建立一个Web services EndPoint:package Hello;import javaxjwsWebService;
import javaxjwsWebMethod;
import javaxxmlwsEndpoint;
@WebService
public class Hello {
@WebMethod
public String hello(String name) {
return "Hello, " + name + "\n";
}
public static void main(String[] args) {
// create and publish an endpoint
Hello hello = new Hello();
Endpoint endpoint = Endpointpublish("
, hello);
}
}
②使用apt编译Hellojava(例:apt -d [存放编译后的文件目录] Hellojava ) ,
会生成jaws目录
③使用java HelloHello运行,然后将浏览器指向
就会出现下列显示
④使用wsimport生成客户端使用如下:
wsimport -p -keep
这时,会在当前目录中生成如下文件:
⑤客户端程序:
1 class HelloClient{
2 public static void main(String args[]) {
3 HelloService service = new HelloService();
4 Hello helloProxy = servicegetHelloPort();
5 String hello = helloProxyhello("你好");
6 Systemoutprintln(hello);
7 }
8 }
以上方法还稍显繁琐,还有更加简单的方法
二、使用xfire,我这里使用的是myeclipse集成的xfire进行测试的利用xfire开发WebService,可以有三种方法:
1 一种是从javabean中生成;
2 一种是从wsdl文件中生成;
3 还有一种是自己建立webservice
步骤如下:
用myeclipse建立webservice工程,目录结构如下:首先建立webservice接口,
代码如下:
1 package commyeclipsewsExample;2 //Generated by MyEclipse
3
4 public interface IHelloWorldService {
5
6 public String example(String message);
7
8 }
接着实现这个借口:
1 package commyeclipsewsExample;
2 //Generated by MyEclipse
3
4 public class HelloWorldServiceImpl implements IHelloWorldService {
5
6 public String example(String message) {
7 return message;
8 }
9
10 }
修改 servicexml文件,加入以下代码:
1 <service>2 <name>HelloWorldService</name>
3 <serviceClass>
4 commyeclipsewsExampleIHelloWorldService
5 </serviceClass>
6 <implementationClass>
7 commyeclipsewsExampleHelloWorldServiceImpl
8 </implementationClass>
9 < style>wrapped</style>
10 <use>literal</use>
11 <scope>application</scope>
12</service>
把整个项目部署到tomcat服务器中打开浏览器,输入>
然后再展开HelloWorldService后面的wsdl可以看到:
客户端实现如下:
1 package commyeclipsewsExampleclient;2
3 import javanetMalformedURLException;
4 import javanetURL;
5
6 import orgcodehausxfireXFireFactory;
7 import orgcodehausxfireclientClient;
8 import orgcodehausxfireclientXFireProxyFactory;
9 import orgcodehausxfireserviceService;
10 import orgcodehausxfireservicebindingObjectServiceFactory;
11
12 import commyeclipsewsExampleIHelloWorldService;
13
14 public class HelloWorldClient {
15 public static void main(String[] args) throws MalformedURLException, Exception {
16 // TODO Auto-generated method stub
17 Service s=new ObjectServiceFactory()create(IHelloWorldServiceclass);
18 XFireProxyFactory xf=new XFireProxyFactory(XFireFactorynewInstance()getXFire());
19 String url="
20
21 try
22 {
23
24 IHelloWorldService hs=(IHelloWorldService) xfcreate(s,url);
25 String st=hsexample("zhangjin");
26 Systemoutprint(st);
27 }
28 catch(Exception e)
29 {
30 eprintStackTrace();
31 }
32 }
33
34 }
有时候我们知道一个wsdl地址,比如想用java客户端引用net做得webservice,使用myeclipse引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下:
2 // TODO Auto-generated method stub一、利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务
1首先建立一个Web services EndPoint:
package Hello;
import javaxjwsWebService;
import javaxjwsWebMethod;
import javaxxmlwsEndpoint;
@WebService
public class Hello {
@WebMethod
public String hello(String name) {
return "Hello, " + name + "\n";
}
public static void main(String[] args) {
// create and publish an endpoint
Hello hello = new Hello();
Endpoint endpoint = Endpointpublish(">
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)