- 浏览: 91034 次
文章分类
最新评论
<转>http://blog.csdn.net/angus_17/article/details/8032856
让我们来看一种需求,集团公司可能具有多种WEB应用。比如,前年开发了个进销存系统、去年开发了一个ERP、今年又开发了一个OA。现在这家集团公司需要将这三个系统整合,难道需要重新编码将它们整合吗?而这三个系统又是用不同语言编写的,这种成本对公司来说无疑是一种浪费。WebService可以很好的解决这种需求。
WebService像是一条线将这些系统穿起来——企业服务总线(ESB),什么是整合?当然是功能和数据的整合,也就是一个系统可以调用另一个系统的WebService接口来完成数据的交互。这样我们就需要知道,提供WebService服务功能的应用公开了哪些接口,我们可以通过WebService描述文档(WSDL)得知。WSDL不需要我们手动编写,Java的WebService实现可以为我们自动生成。JDK1.6新增支持WebService,但还不够成熟。所以我们使用Apache第三方开源组织提供的WebService实现——Axis。
下面开始编写服务端代码:
1.在MyEclipse中,建立一个WebProject。命名为WebService.
2.下载axis1.4的包,解压,里面有一些关于axis的资料和文件。
将webapps里面的,WEB-INF中的web.xml复制,替换到自己的WebService项目中。
如果你没有,可以将下如代码拷贝到你的web.xml中:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Apache-Axis</display-name>
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
<!-- uncomment this if you want the admin servlet -->
<!--
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
-->
<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
</session-config>
<!-- currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response -->
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<welcome-file-list id="WelcomeFileList">
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jws</welcome-file>
</welcome-file-list>
</web-app>
添加jar包:
部署启动 url:http://localhost:8080/WebService/services
表示环境搭建工作已经完成了。可以进入真正的开发了。
用wsdd方法首先需要定制我们的wsdd xml文件,这里命名为deploy.wsdd,创建在当前web工程的WEB-INF目录下,代码如下:
service标签代表一个WebService服务,HelloWorldWSDD就是当前WebService的名称;provider是java的WebService类型,分别有: RPC、Document、Wrapped、Message、EJB、RMI;有兴趣的可以看看org.apache.axis.providers.java包下面的WebService的实现类或是文档;
className代表当前WebService的class类路径;
allowedMethods代表暴露的方法,那些方法在客户端可以调用;
<parameter name="scope" value="request" />
这个是当前WebService的作用域,它有3个值,分别是:request、session、application。
request代表为每个WebService SOAP的请求都产生一个服务对象,和Spring的scope很像,在服务请求频繁的话会消耗很多资源。
session 是给每个调用当前WebService的客户端创建一个服务对象
application 是个当前所有的请求创建一个服务对象
写完配置后,就需要用axis提供的AdminClient工具类来发布到WebService,直到生成server-config.wsdd,步骤如下:运行cmd命令,然后进入当前工程发布的目录,即%tomcat_home%/webapps/project/WEB-INF>
我的是:D:\program files (x86)\apache-tomcat-7.0.59-windows-x64\apache-tomcat-7.0.59\webapps\WebService\WEB-INF
然后输入命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
这里的deploy.wsdd是我们刚才定制的wsdd文件,java当然是jvm的命令,-Djava.ext.dirs=lib设置当前命令的依赖包,AdminClient是axis提供的工具类,这个类本来是可以在官方的工程中admin可以直接运行的(这里不可以,下载下来的少了AdminServlet,有兴趣的可以研究下,就是前面说的官方的示例);
如果运行命令后,看到:
Processing file deploy.wsdd
<Admin>Done processing</Admin>
但是:
看看deploy.wsdd同级目录有没有生成server-config.wsdd如果有这个文件就成功了,没有就失败了。如果失败了就换命令行代码如下:
因为你的端口可能被axis占用了,我们将指定AdminService来完成转换,运行上面命令就没有问题了。
再在浏览器中输入http://10.64.59.12:8080/WebService/services时,看到
则HelloServices就被成功发布了。
其他程序来访问真个HelloService:
import java.io.IOException;
import java.net.MalformedURLException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Test_Webservice {
private static final Log log = LogFactory.getLog(Test_Webservice.class);
private static final String HELLO_SERVICE_ENDPOINT = "http://localhost:8080/WebService/services/HelloServices?wsdl";
/**
* 调用sayHello方法
*/
public void callSayHello() {
try {
Service service = new Service();
Call call = (Call) service.createCall();
//传递url
call.setTargetEndpointAddress(new java.net.URL(HELLO_SERVICE_ENDPOINT));
//调用方法名字
call.setOperationName(new QName("http://webservice.sinosoft.com/","sayHello"));
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
//ret即执行方法之后得到的返回值,此处不用传参,故不用写字符串
String ret = (String) call.invoke(new Object[] {});
System.out.println("The return value is:" + ret);
return;
}
catch (IOException e) {
e.printStackTrace();
}
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (ServiceException e) {
e.printStackTrace();
}
log.error("call sayHello service error!");
}
/**
* 调用sayHelloToPerson方法
*/
public void callSayHelloToPerson() {
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(HELLO_SERVICE_ENDPOINT));
call.setOperationName(new QName("http://webservice.sinosoft.com/","sayHelloToPerson"));
call.addParameter("name", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
//ret即执行方法之后得到的返回值,此处传了一个字符串做为参数,如果不写空,会报错
String ret = (String) call.invoke(new Object[] {"Seven"});
System.out.println("The return value is:" + ret);
return;
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
log.error("call sayHello service error!");
}
/**
* 调用两个方法
* @param args
*/
public static void main(String[] args) {
Test_Webservice tester = new Test_Webservice();
tester.callSayHello();
tester.callSayHelloToPerson();
}
}
print:
The return value is:hello
The return value is:hello Seven
让我们来看一种需求,集团公司可能具有多种WEB应用。比如,前年开发了个进销存系统、去年开发了一个ERP、今年又开发了一个OA。现在这家集团公司需要将这三个系统整合,难道需要重新编码将它们整合吗?而这三个系统又是用不同语言编写的,这种成本对公司来说无疑是一种浪费。WebService可以很好的解决这种需求。
WebService像是一条线将这些系统穿起来——企业服务总线(ESB),什么是整合?当然是功能和数据的整合,也就是一个系统可以调用另一个系统的WebService接口来完成数据的交互。这样我们就需要知道,提供WebService服务功能的应用公开了哪些接口,我们可以通过WebService描述文档(WSDL)得知。WSDL不需要我们手动编写,Java的WebService实现可以为我们自动生成。JDK1.6新增支持WebService,但还不够成熟。所以我们使用Apache第三方开源组织提供的WebService实现——Axis。
下面开始编写服务端代码:
1.在MyEclipse中,建立一个WebProject。命名为WebService.
2.下载axis1.4的包,解压,里面有一些关于axis的资料和文件。
将webapps里面的,WEB-INF中的web.xml复制,替换到自己的WebService项目中。
如果你没有,可以将下如代码拷贝到你的web.xml中:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>Apache-Axis</display-name>
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
<!-- uncomment this if you want the admin servlet -->
<!--
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
-->
<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
</session-config>
<!-- currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response -->
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<welcome-file-list id="WelcomeFileList">
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jws</welcome-file>
</welcome-file-list>
</web-app>
添加jar包:
部署启动 url:http://localhost:8080/WebService/services
表示环境搭建工作已经完成了。可以进入真正的开发了。
用wsdd方法首先需要定制我们的wsdd xml文件,这里命名为deploy.wsdd,创建在当前web工程的WEB-INF目录下,代码如下:
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="HelloServices" provider="java:RPC"> <parameter name="className" value="HelloService"/> <parameter name="allowedMethods" value="*"/> <parameter name="scope" value="request" /> </service> </deployment>
service标签代表一个WebService服务,HelloWorldWSDD就是当前WebService的名称;provider是java的WebService类型,分别有: RPC、Document、Wrapped、Message、EJB、RMI;有兴趣的可以看看org.apache.axis.providers.java包下面的WebService的实现类或是文档;
className代表当前WebService的class类路径;
allowedMethods代表暴露的方法,那些方法在客户端可以调用;
<parameter name="scope" value="request" />
这个是当前WebService的作用域,它有3个值,分别是:request、session、application。
request代表为每个WebService SOAP的请求都产生一个服务对象,和Spring的scope很像,在服务请求频繁的话会消耗很多资源。
session 是给每个调用当前WebService的客户端创建一个服务对象
application 是个当前所有的请求创建一个服务对象
写完配置后,就需要用axis提供的AdminClient工具类来发布到WebService,直到生成server-config.wsdd,步骤如下:运行cmd命令,然后进入当前工程发布的目录,即%tomcat_home%/webapps/project/WEB-INF>
我的是:D:\program files (x86)\apache-tomcat-7.0.59-windows-x64\apache-tomcat-7.0.59\webapps\WebService\WEB-INF
然后输入命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
这里的deploy.wsdd是我们刚才定制的wsdd文件,java当然是jvm的命令,-Djava.ext.dirs=lib设置当前命令的依赖包,AdminClient是axis提供的工具类,这个类本来是可以在官方的工程中admin可以直接运行的(这里不可以,下载下来的少了AdminServlet,有兴趣的可以研究下,就是前面说的官方的示例);
如果运行命令后,看到:
Processing file deploy.wsdd
<Admin>Done processing</Admin>
但是:
D:\program files (x86)\apache-tomcat-7.0.59-windows-x64\apache-tomcat-7.0.59\web apps\WebService\WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminCli ent deploy.wsdd Processing file deploy.wsdd Exception: AxisFault faultCode: {http://xml.apache.org/axis/}HTTP faultSubcode: faultString: (404)Not Found faultActor: faultNode: faultDetail: {}:return code: 404
看看deploy.wsdd同级目录有没有生成server-config.wsdd如果有这个文件就成功了,没有就失败了。如果失败了就换命令行代码如下:
D:\program files (x86)\apache-tomcat-7.0.59-windows-x64\apache-tomcat-7.0.59\web apps\WebService\WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminCli ent -lhttp://localhost:8080/WebService/services/AdminService deploy.wsdd Processing file deploy.wsdd <Admin>Done processing</Admin>
因为你的端口可能被axis占用了,我们将指定AdminService来完成转换,运行上面命令就没有问题了。
再在浏览器中输入http://10.64.59.12:8080/WebService/services时,看到
则HelloServices就被成功发布了。
其他程序来访问真个HelloService:
import java.io.IOException;
import java.net.MalformedURLException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class Test_Webservice {
private static final Log log = LogFactory.getLog(Test_Webservice.class);
private static final String HELLO_SERVICE_ENDPOINT = "http://localhost:8080/WebService/services/HelloServices?wsdl";
/**
* 调用sayHello方法
*/
public void callSayHello() {
try {
Service service = new Service();
Call call = (Call) service.createCall();
//传递url
call.setTargetEndpointAddress(new java.net.URL(HELLO_SERVICE_ENDPOINT));
//调用方法名字
call.setOperationName(new QName("http://webservice.sinosoft.com/","sayHello"));
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
//ret即执行方法之后得到的返回值,此处不用传参,故不用写字符串
String ret = (String) call.invoke(new Object[] {});
System.out.println("The return value is:" + ret);
return;
}
catch (IOException e) {
e.printStackTrace();
}
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (ServiceException e) {
e.printStackTrace();
}
log.error("call sayHello service error!");
}
/**
* 调用sayHelloToPerson方法
*/
public void callSayHelloToPerson() {
try {
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(HELLO_SERVICE_ENDPOINT));
call.setOperationName(new QName("http://webservice.sinosoft.com/","sayHelloToPerson"));
call.addParameter("name", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
try {
//ret即执行方法之后得到的返回值,此处传了一个字符串做为参数,如果不写空,会报错
String ret = (String) call.invoke(new Object[] {"Seven"});
System.out.println("The return value is:" + ret);
return;
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
}
log.error("call sayHello service error!");
}
/**
* 调用两个方法
* @param args
*/
public static void main(String[] args) {
Test_Webservice tester = new Test_Webservice();
tester.callSayHello();
tester.callSayHelloToPerson();
}
}
print:
The return value is:hello
The return value is:hello Seven
发表评论
-
41、解决HttpServletResponse输出的中文乱码问题
2015-04-12 21:48 1215response返回有两种,一种是字节流outputs ... -
41、轮询
2015-04-12 08:50 0浏览器关闭使session失效 ... -
40、spring ajax/easyui 中文乱码的解决
2015-04-04 14:52 692使用spingmvc,在JS里面通过ajax发送请求,并 ... -
39、.net
2015-03-28 23:12 542熟悉java编程,自然学习c#就会比较容易,有几个点需要说明下 ... -
38、servlet-- JSTL+EL(c标签、${})
2015-03-23 15:57 780参看:http://www.cnblogs.com/xdp-g ... -
37、servlet--jsp
2015-03-23 15:07 493不管是JSP还是Servlet,虽然都可以用于开发动 ... -
36、servlet--防止表单重复提交
2015-03-23 14:33 7101、在网络延迟会或服务器反应过慢的情况下让用户有时间点击多次s ... -
35、servlet--servletContext
2015-03-22 13:41 474servletContext接口是Servlet中最大的一个接 ... -
34、servlet--会话技术/购物车demo/y验证码
2015-03-21 23:40 586会话Session and Cookie 1、session: ... -
33、servlet--转发/web开发指导思想
2015-03-21 12:31 445转发: req.getRequestDispatcher(&q ... -
32、servlet --重定向/下载/缓存/中文乱码
2015-03-20 23:21 1055重定向1、sendRedirect rep.sendRedir ... -
31、servlet--开发方式
2015-03-20 21:55 633servlet:利用java技术开发动态网页的技术,是学习ja ... -
30、servlet---tomcat原理
2015-03-20 18:20 675Servlet出现得早,servlet很强大,但是se ... -
29、servlet--jsp执行过程
2015-03-20 15:08 446J2EE的13种核心技术:JDBC、JNDI、EJBs、 ... -
29、springmvc+spring+mybatis+oracle12的demo
2015-03-15 20:29 0每次搭建都要重头搭建,累~~ 注意:用12c的jdbc 在安 ... -
27、Tomcat多次加载项目问题
2015-03-12 15:30 562错误配置方式: <Host name="lo ... -
26、数据分页(jsp+servlet)
2015-03-12 15:19 472随着数据库中存储的数据的增多,满足用户查询条件的数据也 ... -
llll.文档设计
2015-03-11 13:31 0设计文档与代码实现到 ... -
24、webservice_短信接口
2015-03-11 10:48 801http://blog.csdn.net/sxdtzhaoxi ... -
25、RMI_demo1
2015-03-11 10:48 426Java RMI 指的是远程方法调用 (Remote Meth ...
相关推荐
`axis-1_4`文件夹可能包含了Axis1.4的完整版本,其中包括了Axis的库文件、文档、示例和工具等。要使用Axis,需要将其配置到你的开发环境中,通常是将lib目录下的jar文件添加到项目的类路径中,并确保服务器环境中也...
1. **添加依赖**:在Spring Boot项目的`pom.xml`文件中,我们需要添加Axis1.4和Spring Web Services的依赖。由于Spring Boot默认不包含对Axis的支持,所以需要手动引入。 ```xml <!-- 添加Axis1.4依赖 --> ...
1. **添加依赖**:首先,我们需要在`pom.xml`文件中添加Axis1.4的依赖。这可以通过在Maven仓库中查找相应的坐标并将其添加到依赖管理部分完成。 2. **创建Web服务**:编写一个Java类,该类将作为Web服务的实现。这...
2. **创建 Web 服务**:在 Axis1.4 中,你可以通过编写 Java 类并使用特定的注解(如 `@WebService`)来定义 Web 服务。这个类将包含你的业务逻辑,并可以通过 SOAP 调用来访问。 3. **配置 SpringBoot**:为了使 ...
其中axis1.4是比较稳定和成熟的一种。。。 axis的下载 http://ws.apache.org/axis/ 这里面有两个项目 1.edi_client_axis 2.edi_server_axis edi_client_axis可以通过URL地址访问edi_server_axis 的服务
本指南详细介绍了Axis1.4的高级特性,并提供了经过测试的DEMO,帮助读者更好地理解和应用。 1. **WebService简介** - **WebService介绍**:WebService是一种基于开放标准(如XML、SOAP、WSDL和UDDI)的分布式计算...
Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;
在这里是本人经过对网络资源的学习总结出来的应用axis1.4进行webservice开发的总结,里面有简单的demo以及所有工程用到的jar包,以及如何进行webservice的部署与发布 (注:这里用到的webservice是基于简单的单值...
1. **axis-1.4.jar**:这是Apache Axis 1.4版本的核心库,包含用于处理Web服务请求和响应的类。Axis是一个开源的Web服务框架,它实现了SOAP(简单对象访问协议)和WSDL标准。 2. **mail-1.4.7.jar**:这包含...
这个【Axis WebService RPC Demo】标签暗示了示例可能使用了远程过程调用(RPC)风格的Web服务,这是一种简单的Web服务模型,使得服务看起来就像是直接调用了本地函数一样。这使得客户端和服务器之间的交互更加直观...
5. **WebService Demo**:结合标签中的 "webservice",这个示例可能还包含了一个基于 SOAP 的 Web 服务。在 Java 中,通常使用 JAX-WS 或 Apache CXF 等库来创建和消费 Web 服务。由于文件列表中没有明确的 JAX-WS ...
"java WSDL接口webService实现方式" 在本文中,我们将详细介绍java WSDL接口webService实现方式的相关资料,为大家提供了一定的参考价值。 一、使用JDK生成WSDL的对象类 在使用JDK生成WSDL的对象类时,我们可以...
在 Java 平台上,Apache CXF 和 Axis 是两个非常流行的工具,它们可以帮助开发者生成用于 WebService 的代码。 CXF 提供了两种主要的开发方式: - **WSDL-First 方法**:先编写 WSDL 文件,然后根据该文件生成...