1、选择要转换的java文件,生成class
2、写wsdd
3、发布
剩下的就只有调用了wsdl2java
我原来的系统是CICS的,对后台封装了一层,现在用webservice再封装一层,前台页面,控制,数据传输,数据处理统统都可以分开了,爽
//以下是从网上找的关于AXIS的入门教程
一、Axis安装 1、环境 J2SE SDK 1.3 or 1.4: 我使用 1.4.2 Servlet Container: 我使用的Tomcat 5.0
2、到 http://ws.apache.org/Axis/网站下载Axis安装包
3、解压缩安装包,将Axis_UNZIP_PATH\Axis-version\webapps下的Axis包拷贝到TOMCAT_HOME\webapps\下,以下约定Axis_HOME为该TOMCAT_HOME\webapps\Axis目录
4、启动tomcat,访问http://localhost:8080/Axis 检查安装是否成功
5、以上步骤执行成功,可以开发webservice例子了
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
二、编写DII(Dynamic Invocation Interface )方式web服务
1.编写服务端程序HelloClient
public class HelloClient
{
public String getName(String name)
{
return "hello "+name;
}
}
2、将源码拷贝到Axis_HOME下,重命名为 HelloClient.jws
3、访问连接http://localhost:8080/Axis/HelloClient.jws?wsdl,页面显示Axis自动生成的wsdl
4、编写访问服务的客户端 TestHelloClient.java
import org.apache.Axis.client.Call;
import org.apache.Axis.client.Service;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
public class SayHelloClient2
{
public static void main(String[] args)
{
try
{
String endpoint =
"http://localhost:8080/Axis/HelloClient.jws";
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
call.setOperationName(new QName(
"http://localhost:8080/Axis/HelloClient.jws",
"getName"));
call.setTargetEndpointAddress
(new java.net.URL(endpoint));
String ret = (String) call.invoke(new Object[]
{"zhangsan"});
System.out.println("return value is " + ret);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
三、编写Dynamic Proxy方式访问服务
1、编写部署服务端程序,同上边DII方式,本次仍使用上边部署的HelloClient
2、编写代理接口
public interface HelloClientInterface
extends java.rmi.Remote
{
public String getName(String name)
throws java.rmi.RemoteException;
}
3、编写并执行客户端程序TestHelloClient.java
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
import java.net.URL;
import javax.xml.namespace.QName;
public class TestHelloClient
{
public static void main(String[] args)
{
try
{
String wsdlUrl =
"http://localhost:8080/Axis/HelloClient.jws?wsdl";
String nameSpaceUri =
"http://localhost:8080/Axis/HelloClient.jws";
String serviceName = "HelloClientService";
String portName = "HelloClient";
ServiceFactory serviceFactory =
ServiceFactory.newInstance();
Service afService =
serviceFactory.createService(new URL(wsdlUrl),
new QName(nameSpaceUri, serviceName));
HelloClientInterface proxy = (HelloClientInterface)
afService.getPort(new QName(
nameSpaceUri, portName),
HelloClientInterface.class);
System.out.println
("return value is "+proxy.getName("john") ) ;
}catch(Exception ex)
{
ex.printStackTrace() ;
}
}
}
四、编写wsdd发布web服务,编写stub client访问web服务
1、编写服务端程序server,SayHello.java,编译server.SayHello.java
package server;
public class SayHello
{
public String getName(String name)
{
return "hello "+name;
}
}
2.编写LogHandler.java
import org.apache.Axis.AxisFault;
import org.apache.Axis.Handler;
import org.apache.Axis.MessageContext;
import org.apache.Axis.handlers.BasicHandler;
import java.util.Date;
public class LogHandler extends BasicHandler
{
public void invoke
(MessageContext msgContext)
throws AxisFault
{
try {
Handler serviceHandler
= msgContext.getService();
Integer numAccesses =
(Integer)serviceHandler.getOption("accesses");
if (numAccesses == null)
numAccesses = new Integer(0);
numAccesses = new Integer
(numAccesses.intValue() + 1);
Date date = new Date();
String result =
date + ": service " +
msgContext.getTargetService() +
" accessed " + numAccesses + " time(s).";
serviceHandler.setOption
("accesses", numAccesses);
System.out.println(result);
} catch (Exception e)
{
throw AxisFault.makeFault(e);
}
}
}
3、编写wsdd文件
deploy.wsdd
"http://xml.apache.org/Axis/wsdd/"
xmlns:java=
"http://xml.apache.org/Axis/wsdd/providers/java">
provider="java:RPC">
value="server.SayHello"/>
value="*"/>
3、将编译后的文件拷贝到Axis_HOME/WEB-INF/classes下,如:D:\tomcat\webapps\Axis\WEB-INF\classes
4、发布服务:
java org.apache.Axis.client.AdminClient deploy.wsdd
5、生成client stub文件
a:方式1
将SayHello.java拷贝到Axis_HOME/下,重命名为SayHello.jws,
执行下面的命令生存client stub
java org.apache.Axis.wsdl.WSDL2Java
-p client http://localhost:8080
/Axis/services/SayHello.jws?wsdl
b:方式2
执行如下命令生成SayHello.wsdl
java org.apache.Axis.wsdl.Java2WSDL
-oSayHello.wsdl -lhttp://localhost:8080
/Axis/services/SayHello -nsayhello server.SayHello
执行如下命令生成client stub
java org.apache.Axis.wsdl.WSDL2Java
SayHello.wsdl -p client
生成的stub client文件列表为:
1.SayHello.java
2.SayHelloService.java。
3.SayHelloServiceLocator.java
4.SayHelloSoapBindingStub.java
6、编写客户端程序,编译并执行
public class SayHelloClient
{
public static void main(String[] args)
{
try
{
SayHelloService service = new client.
SayHelloServiceLocator();
client.SayHello_PortType
client = service.getSayHello();
String retValue=client.getName("zhangsan");
System.out.println(retValue);
}
catch (Exception e)
{
System.err.println
("Execution failed. Exception: " + e);
}
}
}
您也可以写server-config.wsdd
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
value="org.apache.axis.attachments.AttachmentsImpl"/>
分享到:
相关推荐
### 3步骤将JAVA程序转换为WEBSERVICE 在当今高度互联的世界中,Web服务扮演着连接不同系统、平台和应用程序的重要角色。Java作为一种广泛使用的编程语言,在开发可互操作的Web服务方面拥有强大的能力。本文将详细...
2. 使用诸如net.sf.json JSONObject类(一个流行的Java库,用于处理JSON数据)来将JSON格式字符串转换为JSON对象。转换后,服务端可以通过指定的键(key)来获取JSON对象中的值。 3. 在Java客户端,调用WebService...
通过JACOB,Java程序可以利用这些功能,例如,将接收到的文件数据保存到本地磁盘。 2. **数据转换**:如果文件是以特定格式(如二进制或特定文本格式)传输的,JACOB可能用于将这些数据转换为COM组件可以理解的格式...
由于PHP默认编码为ISO-8859-1,而Java客户端默认编码可能为GBK,因此需要对中文进行编码转换,避免出现乱码。 #### 四、总结 通过以上步骤,我们可以实现Java客户端调用PHP Webservice服务的功能。整个过程涉及到...
确保正确地将这些jar包添加到你的项目类路径中,以便于Java程序能够正确运行。 此外,注意在Java中处理与C#的互操作时可能会遇到类型转换的问题,因为C#和Java的数据类型不完全相同。例如,C#的DateTime在Java中...
然后,通过JAX-WS(Java API for XML Web Services)或Apache CXF等工具,我们可以将这个Java类转换为一个SOAP服务。生成的WSDL文件可以被客户端用来发现和调用服务。 接下来,我们将这个WebService部署到Tomcat...
6. **处理结果**:根据业务需求,对解析出的数据进行处理,如转换为Java对象、存储到数据库或展示给用户。 这个例子中的"soap2"可能是项目中的一个具体示例,它可能包含了一个完成上述步骤的Java类或测试用例。测试...
2. 序列化XML:使用`Marshaller`接口将Java对象转换为XML文档。例如: ```java JAXBContext jaxbContext = JAXBContext.newInstance(User.class); Marshaller marshaller = jaxbContext.createMarshaller(); ...
其核心功能是将各种类型的数据,如文本、URL、联系人信息等,转换为二维码图案。ZXing的Java端提供了API,使得开发者可以轻松地在Java应用中集成二维码生成功能。这个Webservice就是利用了ZXing的这些功能,创建了一...
- **处理响应**:接收并解析返回的SOAP响应,通常是XML格式,然后将其转换为Java对象。 6. **异常处理** 在调用WebService过程中可能会遇到网络问题、格式错误等问题,因此需要适当的异常处理代码来捕获并处理...
以下将详细解析这一过程中的关键知识点,包括WebService的架构原理、工具选择(如Axis2)、数据类型转换、命名空间处理、以及具体的代码示例分析。 ### WebService架构原理 WebService是一种支持网络服务的标准...
它允许Java开发者将Java类转换为SOAP服务,也可以将SOAP消息转换为可执行的Java方法调用。以下是如何使用Axis进行Java调用WebService接口的步骤: 1. **创建WebService客户端**: 首先,你需要获取服务的WSDL文档。...
开发者可以使用JAXB(Java Architecture for XML Binding)将Java对象转换为XML,反之亦然。 - 使用WSDL文件,Java开发者可以通过Wsimport工具自动生成客户端代理类,这些类提供了与服务交互的方法。 - 例如,通过...
4. **JAXB**:JAXB是Java SE中的一部分,它提供了一种将Java对象转换为XML文档,以及将XML文档转换回Java对象的机制。在处理复杂数据结构,如包含泛型List的对象时,JAXB可以通过注解或XML绑定文件来定义转换规则。 ...
5. **JAXB(Java Architecture for XML Binding)**:JAXB用于将Java对象转换为XML,以及将XML数据解析回Java对象,是Web服务数据交换的重要工具。 6. **部署和测试**:理解如何将Web服务部署到应用服务器(如...
Java的Web服务(WebService)是一种基于开放标准的互联网通信协议,它允许不同系统之间的应用程序进行交互,不受平台或编程语言的限制。Java提供了强大的WebService支持,主要通过SOAP(Simple Object Access ...
在大多数编程语言中,都有现成的库或框架支持JSON序列化,例如在Java中我们可以使用Jackson或Gson库,在Python中可以使用json模块,将数据对象转换成JSON字符串。 例如,假设我们有一个用户表,包含id、name和email...
在实际应用中,我们可能需要将Java对象转化为XML以便于传递给Webservice。这通常可以通过使用JAXB(Java Architecture for XML Binding)或DOM(Document Object Model)等技术实现。同样,从Webservice返回的XML...
1. 生成客户端代理:CXF的WSDL2Java工具可以将服务端的WSDL(Web Service Description Language)文件转换为Java客户端代码,生成服务代理类。 2. 创建服务代理实例:通过代理类,客户端可以创建服务的实例,就像...
在Java世界中,Web服务(Web Service)是一种用于应用程序之间通信的标准协议,它允许不同系统间的组件通过网络进行互操作。Java自带的JAX-WS(Java API for XML Web Services)框架提供了创建、部署和消费Web服务的...