接上一篇,上一篇中webservice的访问已经简化多了,但是这种方式还要依赖于一个服务器端的interface接口,可不可以不依赖任何service端的接口?这个可以有!
DII:Dynamic Invocation Interface-动态调用接口
简单的理解上一节里需要静态依赖的那个Hello接口现在可以由JAX-RPC在运行时动态生成
package com.crazycoder2010.jaxrpc;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.namespace.QName;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
public class HelloClient3 {
//定义webservice的访问url
private static String END_POINT = "http://localhost:8080/hello/helloKevin";
//服务名字
private static String SERVICE_NAME = "MyHello";
//port
private static String PORT_NAME = "HelloPort";
//name space
private static String BODY_NAMESPACE_URL = "http://www.crazycoder2010.com/wsdl/MyHello";
private static String NS_XSD = "http://www.w3.org/2001/XMLSchema";
private static String URI_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
public static void main(String[] args)throws
MalformedURLException, ServiceException, RemoteException {
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new QName(SERVICE_NAME));
QName port = new QName(PORT_NAME);
Call call = service.createCall(port);
call.setTargetEndpointAddress(END_POINT);
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY, URI_ENCODING);
QName stringType = new QName(NS_XSD,"string");//设置返回值类型为string
call.setReturnType(stringType);
call.setOperationName(new QName(BODY_NAMESPACE_URL,"sayHello"));
call.addParameter("String_1", stringType, ParameterMode.IN);
String[] params = new String[]{"Kevin4"};
String result = (String)call.invoke(params);
System.out.println(result);
}
}
小结:
不依赖webservice服务器端的任何接口,对于减少系统耦合是个福音,不过操作过程还是繁琐了一些,有没有其他的简化方案?继续学习中。。
分享到:
相关推荐
JAX-WS自学笔记 本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java开始 2.1.1 运行wsgen 2.1.2 生成的WSDL和XSD 2.1.3 目录结构 2.2 从WSDL...
JAX-WS自学笔记 本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java开始 2.1.1 运行wsgen 2.1.2 生成的WSDL和XSD 2.1.3 目录结构 ...
基于jax-ws 实现的web service client和server端的demo程序。 注:如果使用的是 myeclipse 时 server 部署到tomcat 启动的时候会报错 解决办法:找到myeclipse安装目录下的 plugins 目录里 查找 webservices-rt.jar,...
用JAX-RPC构建Web服务.docx
J2EE Web Services: XML SOAP WSDL UDDI WS-I JAX-RPC JAXR SAAJ JAXP
MyEclipse8_0中使用 JAX-WS 部署 WebService 实例 - 外衣 - 博客频道 - CSDN_NET.mht
用JAX-RPC构建Web服务.pdf
JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用,JAX-WS方式开发和部署webservice应用
webService部署tomcat需要的jax-ws 的完整jar包
jax-rpc soap头扩展 客户端,服务端例子 ws-tipjax2SOAPHandler.ear,ws-tip-extend.zip 官方也有下载的
使用JAX-WS(JWS)发布WebService 使用myeclipse开发java的webservice的两种方式 方式一: (此方式只能作为调试,有以下bug:jdk1.6u17?以下编译器不支持以Endpoint.publish方式发布document方式的soap,必须在...
jax-ws webservice完整demo,包含所有jax-ws 2.2jar包。
The RESTEasy workbook that follows provides step-by-step instructions for installing, configuring, and running several working JAX-RS examples, using the JBoss RESTEasy implementation of JAX-RS 2.0. ...
NULL 博文链接:https://qidaoxp.iteye.com/blog/610149
[奥莱理] RESTful Java 开发 (Jax-RS 实现) (英文版) [奥莱理] RESTful Java with Jax-RS (E-Book) ☆ 图书概要:☆ Learn how to design and develop distributed web services in Java using RESTful ...
NULL 博文链接:https://liuyunlong1229.iteye.com/blog/1678559
javax.xml.ws.Service 报错需要的包,亲测可以用,直接下载在ide里buildpath一下就可以,四个jar包 ,整合了其他的jar所以配置简单
公司代码实现,简单的webservice服务 发布,实现客户端的调用。