WebService之axis的应用

import java.io.StringReader;

import java.io.StringWriter;

import javax.xml.bind.JAXBContext;

import javax.xml.bind.JAXBException;

import javax.xml.bind.Marshaller;

import javax.xml.bind.Unmarshaller;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;

import org.apache.axis2.addressing.EndpointReference;

import org.apache.axis2.client.Options;

import org.apache.axis2.rpc.client.RPCServiceClient;

import org.junit.Test;

import com.name.pojo.son.Res;

import com.name.pojo.Req;

public class TestSxWs {

@SuppressWarnings("static-access")

//bean to xml

@Test

public void testWsRes(){

StringWriter sw = new StringWriter();

Req req = new Req("code","111111111111","","类1","192.168.1.148","2014-08-11");

try {

JAXBContext context = JAXBContext.newInstance(Req.class);

Marshaller marshaller = context.createMarshaller();

marshaller.setProperty(marshaller.JAXB_ENCODING, "GBK");

marshaller.marshal(req, sw);

System.out.println("-----封装的xml-------"+sw.toString());

} catch (JAXBException e) {

e.printStackTrace();

}

}

//调WebService

@Test

public void testSxWs(){

try {

// RPCServiceClient是RPC方式调用

RPCServiceClient client = new RPCServiceClient();

Options options = client.getOptions();

// 设置调用WebService的URL

String address = "http://192.168.1.16/services/HndyService";

EndpointReference epf = new EndpointReference(address);

options.setTo(epf);

/**

*

* QName命名空间参数就是http://axis2.com, HelloWorldService服务类包名倒过来即可

* hello就是方法名称了

*/

QName qname = new QName("http://service.yz.zyz.modules.whcss.com", "InsertSxInfo");

// 指定调用的方法和传递参数数据,及设置返回值的类型

Object[] result = client.invokeBlocking(qname, new Object[] {reqXml1()},

new Class[] { String[].class });

String[] obj = (String[]) result[0];

System.out.println("---传送过来的xml----"+obj[0]);

try {

JAXBContext context = JAXBContext.newInstance(Res.class);

Unmarshaller unmarshaller = context.createUnmarshaller();

Res u = (Res)unmarshaller.unmarshal(new StringReader(obj[0]));

//返回的东西

System.out.println("状态:"+u.getData().getZt()+","+u.getResult().getMessage()+","+u.getResult().getCode());

} catch (JAXBException e) {

e.printStackTrace();

}

} catch (AxisFault axisFault) {

axisFault.printStackTrace();

}

}

//封xml

@SuppressWarnings("static-access")

private static String reqXml1() {

StringWriter sw = new StringWriter();

Req req = new Req("code","2222222222","1","类别1","192.168.1.18","2014-08-11");

try {

JAXBContext context = JAXBContext.newInstance(Req.class);

Marshaller marshaller = context.createMarshaller();

marshaller.setProperty(marshaller.JAXB_ENCODING, "GBK");//设置传递xml编码

marshaller.marshal(req, sw);

System.out.println("-----封装的xml-------"+sw.toString());

} catch (JAXBException e) {

e.printStackTrace();

}

return sw.toString();

}

}

时间: 2024-11-25 18:35:55

WebService之axis的应用的相关文章

一个关于webservice的Axis问题 Processing file deploy.wsdd Exception: deploy.wsdd (系统找不到指定的文件。)

CSDN 看到一个 错误 各位大侠,在下刚开始研究webservice用的是axis技术,现在我用命令行生成server-config.wsdd文件的时候无法生成,提示找不到文件,是何原因啊. D:\Program Files\MyEclipse Enterprise Workbench 5.1.0 GA\eclipse>set Axis_Lib=D: \workspace\GetMsgService\WebRoot\WEB-INF\lib D:\Program Files\MyEclipse 

Java调用WebService之Axis实现

import org.apache.axis.client.Call; import org.apache.axis.client.Service; /** * @ClassName: TestAxis * @Description: TODO(描述这个类的作用) * @author Roy_70 * @date 2017年4月18日 上午9:16:26 * */ public class TestAxis { public static void main(String []args){ St

webservice(axis)接口上传文件附件 及 用zlib解压缩

webservice传文件,我平时用到的webservice框架也就是Axis和CXF,这两种框架都可以用DataHandler进行文件的传输,这种的传的是文件的内容,不会有文件名称,类型,所以这些得自己在接口中加字段:还有一种方式就是将文件转化成字节数组,再用Base64将字节数组编码成字符串类型放入接口字段中进行传输,接受的一方先解码然后存文件. 目前用到的就是后一种,无论前一种还是后一种,两种方式传输的文件都不能太大,前一种具体能传多大不太清楚,后一种十几兆或者二十多兆还是可以传的,只是传

java 调用webservice采用axis方式时候无法找到参数注意事项

String url = "http://192.168.0.90:8088/wsServerExample"; String namespace = "http://webserver.server.com/"; try { org.apache.axis.client.Service service = new org.apache.axis.client.Service(); Call call = (Call) service.createCall(); /

CXF创建webservice客户端和服务端

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui0317/article/details/9320053 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.CXF框架是一种基于servlet技术的SOA应用开发

WebService的helloworld,服务器端与客户端的Demo(转)----自己建立的Web Project , 而不是Web Service Project,利用WSDD 自己发布

WebService的helloworld,服务器端与客户端的Demo http://blog.csdn.net/angus_17/article/details/8032856 今天突然兴起,想学学webService,然后就找找资料,做了个简单的DEMO.先记录下来,以便日后使用. 首先,先说点理论上的东西. WebService又是一种高级应用,与之前学习的Struts.Spring.Hibernate等框架不同.WebService是面向服务的架构(SOA),看起来像是比SSH框架要大.

Web服务cxf框架发布

CXF创建webservice客户端和服务端 分类:             [Webservice]              2013-07-13 18:42     11645人阅读     评论(10)     收藏     举报 Web服务cxf框架发布 目录(?)[+] 一CXF的介绍 二CXF的准备条件 三创建webservice服务端 先将jar包放入lib目录 在webxml中配置CXF框架的核心servlet 在applicationContextxml中导入xml并且发布w

Web服务cxf框架发布2

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317/article/details/9320053 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.CXF框架是一种基于servlet技术的SOA应用开发框架

AXIS2远程调用WebService示例(Eclipse+AXIS)

转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/10/3071584.html 我们将Web Service发布在Tomcat或者其他应用服务器上后,有两种方法可以调用该Web Service: 1.通过浏览器调用,返回规范的XML文件      2.通过客户端程序调用,返回结果可自定义格式 接下来,我利用Eclipse J2EE作为开发工具,演示一个Axis调用WebService的简单示例      第一种调用见我的另一篇博文: