java调用webservice错误:Could not send Message怎么办?

java调用webservice错误:Could not send Message怎么办?,第1张

看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引用,但是却出现无法通过验证的错误,这时我们可以直接在类中引用,步骤如下:

1 public static void main(String[] args) throws MalformedURLException, Exception {
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(">

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13432323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-05
下一篇 2023-08-05

发表评论

登录后才能评论

评论列表(0条)

保存