当前位置:首页 » 编程语言 » webservice客户端java

webservice客户端java

发布时间: 2022-09-04 05:32:53

Ⅰ webservice中怎样用java写客户端程序()

基于AXIS的web service:

1 比如要建一个Server.java类的web service
public class Server {
public String printInfo(String name){
return "Hello,"+name;
}
}
2 把Server.java改为Server.Jws放到
…\Tomcat 5.5\webapps\axis中,重启服务器

3 访问http://localhost:8080/axis/Server.jws?wsdl

4 在cmd中输入 cd D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\axis\WEB-INF
输入命令:Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Server.jws?wsdl

5 找到…\Tomcat 5.5\webapps\axis\WEB-INF下生成的localhost文件夹复制到工程中

6 建一个Client端的类进行测试:
public class Client {
public static void main(String arg[]) throws ServiceException, RemoteException{
ServerService ss=new ServerServiceLocator();
Server s=ss.getServer();
System.out.println("............"+s.printInfo("shiyou"));
}
}

Ⅱ java的webService客户端调用.net 和java服务端通用吗

webservice由于是通用协议,与具体语言无关
所以理论上服务端实现语言的改动不至于影响客户端

Ⅲ Java客户端调用Webservice接口求代码

客户端获得自定义对象包路径必须和服务器端相同,当然在客户端也可以不用建该对象,可以将客户端的自定义对象打成jar包,然后在客户端引用。

猜想用反射也可以实现改对象,但目前没有写相关例子。

<p>importjava.io.Serializable;</p><p>{
/**
*客户端必须有与服务器端相同的自定义对象
*/
=1L;
privateStringid;
privateStringname;
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}

}</p>
[java]viewplain
packageclient;

importpo.Hello;

{
/*
[java]viewplain
*该方法名必须和服务接口一致
[java]viewplain
*/
[java]viewplain
publicHelloexample();
[java]viewplain
<preclass="java"name="code">packageclient;

importjava.net.MalformedURLException;//importjava.net.URL;

//importorg.codehaus.xfire.client.Client;
importorg.codehaus.xfire.client.XFireProxyFactory;
importorg.codehaus.xfire.service.Service;
importorg.codehaus.xfire.service.binding.ObjectServiceFactory;

importpo.Hello;

publicclassServicesClient{
publicstaticvoidmain(String[]arg)throwsMalformedURLException,
Exception{
Stringxml="http://localhost:8080/web/services/HeloWebService";
=newObjectServiceFactory();
ServiceserviceModel=objectServiceFactory
.create(IClientHelloManager.class);
=newXFireProxyFactory();
IClientHelloManagerservice=(IClientHelloManager)xFireProxyFactory
.create(serviceModel,xml);
HellolHello=service.example();
System.out.println(lHello.getId());
System.out.println(lHello.getName());
//Clientclient=newClient(newURL(
//"http://localhost:8080/web/services/HeloWebService?wsdl"));
//Object[]rsult=client.invoke("example",newObject[]{"hello"});
//Hellohello=(Hello)rsult[0];
//System.out.println();
}
}</pre>
<pre></pre>
<pre></pre>
<pre></pre>

Ⅳ java webservice生成的客户端代码 需要哪些jar包

1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。
2、下载Axis安装包。
3、将Axis相关包文件放在WEB-INF\lib目录下。
4、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface (DII)
2、Dynamic Proxy方式
3、Stubs方式
建议我们使用Stubs方式,因此我就主要就介绍一下第三种方式。
注意,Java源代码是放在D:\workspace\test\目录下,Axis相关包文件放在D:\workspace\test\WEB-INF目录下。

Ⅳ java webservice客户端代码不生成可以吗

WebService一般是做接口的,如果你要进行客户端的调用,则需要生成客户端代码。客户端代码可以通过工具生成的,比如axis和axis2等都可以,如果你不愿意自动生成则需要手动编写了。

Ⅵ 如何在Java中快速发布WebService服务

1,在Java项目中发布一个WebService服务:

如何发布?

——JDK1.6中JAX-WS规范定义了如何发布一个WebService服务;

(1)用jdk1.6.0_21以后的版本发布;

(2)与Web服务相关的类,都位于Javax.jws.*包中

@WebService——此注解用在类上指定将此类发布成一个WebService;

EndPoint——此类为端点服务类,其中publish()方法用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上,用于发布。

2,例子:

(1)发布WebService服务

HelloWebService.java:

[java]view plain

  • <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">packagecn.tgb.ws;

  • importjavax.jws.WebMethod;

  • importjavax.jws.WebService;

  • importjavax.xml.ws.Endpoint;

  • /**

  • *@WebService-它是一个注解,用在类上指定将此类发布成一个ws.

  • Endpoint–此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。

  • *@authorxuemin

  • *

  • */

  • @WebService

  • publicclassHelloWebService{

  • publicStringHelloWord(Stringname){

  • return"Hello:"+name;

  • }

  • /**

  • *添加exclude=true后,HelloWord2()方法不会被发布

  • *@paramname

  • *@return

  • */

  • @WebMethod(exclude=true)

  • publicStringHelloWord2(Stringname){

  • return"Hello:"+name;

  • }

  • publicstaticvoidmain(String[]args){

  • /**

  • *参数1:服务的发布地址

  • *参数2:服务的实现者

  • */

  • Endpoint.publish("http://192.168.24.138:456/helloWord",newHelloWebService());

  • }

  • }</span>


  • 注:

    @WebService-它是一个注解,用在类上指定将此类发布成一个ws.

    Endpoint –此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解对象绑定到一个地址的端口上。

    运行以上程序进行发布。

    (2)查看wsdl

    地址:http://192.168.24.138:456/helloWord?wsdl

    只要在客户端浏览器能看到此WSDL文档,说明服务发布成功

    以上服务发布成功;

    总结:

    如何发布一个Web服务:

    a,在类上添加@WebService注解

    (注:此注解是jdk1.6提供的,位于javax.jws.WebService包中)

    b,通过EndPoint(端点服务)发布一个WebService

    (注:EndPoint是jdk提供的一个专门用于发布服务的类,该类的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。位于javax.xml.ws.Endpoint包中)

    c,注:

    类上添加注解@WebService,类中所有非静态方法都会被发布;

    静态方法和final方法不能被发布;

    方法上加@WebMentod(exclude=true)后,此方法不被发布;

    (3)客户端访问发布的服务

    根据WSDL文档来在客户端编写代码,访问发布的服务;

    但是,WSDL文档看不懂怎么办?代码该如何编写?

    ——你看不懂,JDK看得懂,wsimport是JDK自带的,可以根据WSDL文档生成客户端调用代码的工具。无论服务器端WebService使用什么语言编写的,豆浆在客户端生成Java代码。所以服务器用什么语言编写的并不重要。

    wsimport.exe命令参数熟知:

    -d:生成class文件。默认参数。

    -s:生成Java文件

    -p:自定义包结构

    解析地址生成源码到E盘:


    MyClient.java:

  • [java]view plain
  • <spanstyle="font-family:KaiTi_GB2312;font-size:18px;">packagecn.tgb.ws;

  • publicclassMyClient{

  • publicstaticvoidmain(String[]args){

  • HelloWebServiceServicehwss=newHelloWebServiceService();

  • HelloWebServicehws=hwss.getHelloWebServicePort();

  • Stringresult=hws.helloWord("hanxuemin");

  • System.out.println(result);

  • }

  • }</span>

Ⅶ 关于Webservice接口的Java客户端调用

String endpoint="http://localhost:8080/xxx/services/userservice?wsdl";
String id = "11111";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName("webservice方法名");
String res = (String) call.invoke(new Object[] {id});
看了你的描述觉得你把webservice想得太复杂化了,其实就是一个jar包和几个类。
以上就是最简单的webservice客户端用法,和反射有点像。当然返回值不一定是String,返回的类型和格式要问服务提供方。
我用的是axis的,我不了解websphere什么的,但是webservice就是那么易用的东西。

Ⅷ Java调用webservice接口,一台客户端成功,一台客户端失败

如果可以的话,调用的时候,在服务端上面打断点。这样就知道是真的超时,还是没连接上。不能打断点,就在A上面,先测试一下IP端口是不是通的。

Ⅸ Java客户端调用Webservice接口流程

给你看看以前写的获取电话号码归属地的代码的三种方法,然后你就懂了。

importjava.io.ByteArrayOutputStream;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.net.HttpURLConnection;
importjava.net.URL;

importorg.apache.commons.httpclient.HttpClient;
importorg.apache.commons.httpclient.HttpException;
importorg.apache.commons.httpclient.methods.PostMethod;

publicclassMobileCodeService{

publicvoidhttpGet(Stringmobile,StringuserID)throwsException
{
//http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode=string&userID=string
URLurl=newURL("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo?mobileCode="+mobile+"&userID="+userID);
HttpURLConnectionconn=(HttpURLConnection)url.openConnection();
conn.setConnectTimeout(5000);
conn.setRequestMethod("GET");

if(conn.getResponseCode()==HttpURLConnection.HTTP_OK)//200
{
InputStreamis=conn.getInputStream();

=newByteArrayOutputStream();//

byte[]buf=newbyte[1024];
intlen=-1;
while((len=is.read(buf))!=-1)
{
//获取结果
arrayOutputStream.write(buf,0,len);
}

System.out.println("Get方式获取的数据是:"+arrayOutputStream.toString());
arrayOutputStream.close();
is.close();
}
}


publicvoidhttpPost(Stringmobile,StringuserID)throwsHttpException,IOException
{
//访问路径http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo
//HttpClient访问

HttpClienthttpClient=newHttpClient();
PostMethodpm=newPostMethod("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo");

pm.setParameter("mobileCode",mobile);
pm.setParameter("userID",userID);

intcode=httpClient.executeMethod(pm);
System.out.println("状态码:"+code);

//获取结果
Stringresult=pm.getResponseBodyAsString();
System.out.println("获取到的数据是:"+result);
}

publicvoidSOAP()throwsException
{
HttpClientclient=newHttpClient();

PostMethodmethod=newPostMethod("http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx");

//设置访问方法的参数
method.setRequestBody(newFileInputStream("C:\soap.xml"));

method.setRequestHeader("Content-Type","text/xml;charset=utf-8");

intcode=client.executeMethod(method);
System.out.println("状态码:"+code);

//获取结果
Stringresult=method.getResponseBodyAsString();
System.out.println("获取到的数据是:"+result);
}

publicstaticvoidmain(String[]args)throwsException{
MobileCodeServicemcs=newMobileCodeService();
mcs.httpGet("18524012513","");
//mcs.httpPost("18524012513","");
//mcs.SOAP();
}
}

Ⅹ JAVA webservice 客户端调用问题

这个应该你的jar包有问题,调用的时候不是对应的版本,就想json对象就有好几个jar都定义了。

热点内容
安卓辅助脚本如何写 发布:2025-01-15 13:42:50 浏览:123
压缩裤的穿法 发布:2025-01-15 13:39:24 浏览:314
支付宝如何设支付密码 发布:2025-01-15 13:39:24 浏览:256
ea编程入门 发布:2025-01-15 13:30:11 浏览:412
应缴费档次配置异常怎么回事 发布:2025-01-15 13:20:34 浏览:617
成都php招聘 发布:2025-01-15 13:12:16 浏览:381
怎么调用服务器数据库 发布:2025-01-15 13:06:25 浏览:656
人人网设置访问权限 发布:2025-01-15 13:02:06 浏览:563
崩坏学园2脚本 发布:2025-01-15 12:58:43 浏览:459
我的世界服务器等级如何升 发布:2025-01-15 12:45:55 浏览:689