浩克网 手游攻略 手游评测 发布webservice接口(java webservice接口开发教程)

发布webservice接口(java webservice接口开发教程)

时间:2022-12-30 15:36:00 来源:网络 浏览:3

业务场景:给一家公司的两个系统之间做部分数据做同步,A系统中进行业务操作后同步到B系统中,这样就不需要B系统再次进行操作了。

开发方案:B系统搭建WebService服务器,A系统业务操作后通过发送请求将参数传入B系统中自动执行业务操作。

第一步,搭建WebService服务,建立WebService接口及实现类:

/**

* WebService接口

* @date 2020年4月10日09:09:24

* @author 拽拽很乖

*/

public interface IOrderPluginWebService {

/**

* webService接口

* @author 拽拽很乖

* @date 2020年4月10日09:15:18

* @param type 类型

* @param pk_order 主键

* @return 是否同步成功 :

* true 同步成功

* false 同步失败

*/

public boolean sendDataToOrderPlugin(String type,String[] pk_order);

}

/**

* webService接口实现类

* @author 拽拽很乖

* @date 2020年4月10日09:27:18

*/

public class OrderReportWebServiceImpl implements IOrderPluginWebService {

@Override

public boolean sendDataToOrderPlugin (String type,String[] pk_order) {

//业务操作,逻辑处理

}

}

因为本次主要说明WebService服务搭建以及连接,业务逻辑处理就不贴上来了。

第二步、创建wsdl文件及upm文件:

右键接口选择Generate WSDL以及Publish Web Service,创建好wsdl文件以及upm文件。当然也可以在接口上添加@WebService注解,没有upm自动插件一般用注解。

第三步:浏览器测试是否发布成功:

启动服务端代码,打开IE浏览器输入地址测试,成功后就可以看到刚才发布的接口,点开后或看到如下图所示的xml格式网页,表示WebService接口发布成功。

第四步:SOAPUI测试接口:

打开soapUI工具,新建测试工程,右键Projects新建一个SOAP项目,project name随意填写,WSDL写上述图所示浏览器中测试的带有"?wsdl"结尾的地址。

填写参数后就可以测试了:启动后WebService实现类就可以接到测试额参数,至此,WebService服务端搭建成功。

第五步:发送soap请求:

/**

* 发送SOAP请求

* @param xmlString XML文件

* @return webService返回结果

* @throws Exception

* @author 拽拽很乖

* @date 2020年04月10日10:30:21

*/

private String sendPost(String xmlString)throws Exception {

//HttpURLConnection 发送SOAP请求

URL url = new URL(URL);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

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

conn.setRequestMethod("POST");

conn.setUseCaches(false);

conn.setDoInput(true);

conn.setDoOutput(true);

conn.setConnectTimeout(30*1000);

conn.setReadTimeout(30*1000);

DataOutputStream dos = new

DataOutputStream(conn.getOutputStream());

dos.write(xmlString.getBytes("utf-8"));

dos.flush();

BufferedReader reader = new BufferedReader(new InputStreamReader(

conn.getInputStream(), "utf-8"));

String line = null;

StringBuffer strBuf = new StringBuffer();

while ((line = reader.readLine()) != null) {

strBuf.append(line);

}

dos.close();

reader.close();

return strBuf.toString();

}

其中参数XML就按照soapUI测试时的xml格式配置即可,需要传入的参数写入对应的位置即可,URL就是soapUI测试时的URL。

/**

* webService URL

* @author 拽拽很乖

* @date 2020年4月10日10:36:13

*/

private static final String URL ="http://10.31.0.67:88/uapws/service/IOrderPluginWebService";

/**

* @author 拽拽很乖

* @date 2020年4月10日7:17:21

* @param type

* 打开或关闭类型

* @param pk_order

* 采购订单主键

* @return soap请求XML

* @throws Exception

*/

private String CreateOrder(String type,String pk_order) throws Exception {

StringBuffer xmlString = new StringBuffer();

DocumentBuilderFactory fct = DocumentBuilderFactory.newInstance();

DocumentBuilder buil = fct.newDocumentBuilder();

Document doc = buil.newDocument();

Element ps = doc.createElement("soapenv:Envelope");

Element billHeader = doc.createElement("soapenv:Header");

Element billBody = doc.createElement("soapenv:Body");

Element itemIor = doc.createElement("ior:sendDataToOrderPlugin");

Attr soapenv = doc.createAttribute("xmlns:soapenv");

Attr ior = doc.createAttribute("xmlns:ior");

doc.appendChild(ps);

ps.appendChild(billHeader);

ps.appendChild(billBody);

ps.setAttributeNode(soapenv);

ps.setAttributeNode(ior);

billBody.appendChild(itemIor);

Text soapenv_v = doc.createTextNode("http://schemas.xmlsoap.org/soap/envelope/");

Text ior_v = doc.createTextNode("http://orderreport.pu.itf.nc/IOrderPluginWebService");

soapenv.appendChild(soapenv_v);

Element str_v = doc.createElement("string");

Text code_v = doc.createTextNode(type);

toXML(itemIor, str_v, code_v);

Element strItem_v = doc.createElement(

"stringItem");

Text pk_order_v = doc.createTextNode(

pk_order.toString());

toXML(itemIor, strItem_v, pk_order_v);

XML_VoucherTranslator.

writeXMLFormatString(xmlString, doc, -2);

return xmlString.toString();

}

private static void toXML(Element e, Element e1, Text text) {

e.appendChild(e1);

e1.appendChild(text);

}

第六步:测试:

开启两端的代码,先运行WebService服务端代码,再运行客户端(请求)代码进行测试。

标题:发布webservice接口(java webservice接口开发教程)
链接:https://www.52hkw.com/news/sypc/4122.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
海棠书屋 - 值得收藏的宝藏文学小说阅读,海棠线上文学城官方网站登录入口

海棠文学小说网站是一个非常知名的小说阅读网,但是这个网站经常会出现过期,打不开的现象,而且网址也会经常的换

2022-12-30
2022软件库合集资料网址大全

在当今数字化时代,软件已经成为人们工作、学习、生活中不可或缺的一部分。为了方便用户获取各种软件资源,许多

2022-12-30
原神二次元深夜奖励半夜史莱姆

原神是一款备受瞩目的开放世界游戏,深夜奖励和半夜史莱姆则是其中的两个元素。深夜奖励指的是在特定时间段内

2022-12-30
原神ちゃんが部下を腿法娴熟胡桃

原神中的角色胡桃是一个拥有腿法娴熟的角色,她的战斗风格主要依靠腿部攻击和闪避。在游戏中,胡桃可以通过不断

2022-12-30