网络服务方式如何在java项目中实现

  

网络服务方式如何在java项目中实现?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

具体内容如下

网络服务方式如何在java项目中实现

1,定义接口

包org.enson.chan;
  
  进口javax.jws.WebService;
  进口javax.jws.soap.SOAPBinding;
  
  @ webservice
  @SOAPBinding(风格=SOAPBinding.Style.RPC)
  公共接口IMyService {
  公共int添加(int, int b);
  
  公共int马克斯(int, int b);
  }

2,实现接口

包org.enson.chan;
  进口javax.jws.WebService;
  
  @ webservice (endpointInterface=皁rg.enson.chan.IMyService")
  公共类MyServiceImpl实现IMyService {
  
  公共int添加(int, int b) {
  System.out.println (b +, +, + +,=, + (a + b));
  返回一个+ b;
  }
  
  公共int马克斯(int, int b) {
  System.out.println (“a与b比较大小,取大值“+((第一部,gt; b), # 63; a: b));
  返回(第一部,gt; b), # 63; a: b;
  }
  
  }

3,定义服务

包org.enson.chan;
  
  进口javax.xml.ws.Endpoint;
  
  公开课MyServer {
  
  公共静态void main (String [] args) {
  字符串地址=癶ttp://localhost: 8090/ns";
  端点。发布(地址,新的MyServiceImpl ());
  }
  }

4,测试服务

包org.enson.chan;
  
  进口java.net.MalformedURLException;
  进口java.net.URL;
  
  进口javax.xml.namespace.QName;
  进口javax.xml.ws.Service;
  
  公开课TestClient {
  
  公共静态void main (String [] args) {
  尝试{
  网址URL=新的URL (“http://localhost: 8090/ns& # 63; wsdl");
  QName sname=new QName (“http://chan.enson.org/",“MyServiceImplService");//创建服务
  服务服务=Service.create (url, sname);//实现接口
  IMyService=service.getPort女士(IMyService.class);
  33)System.out.println (ms.add(12日);//以上服务有问题,依然依赖于IMyServie接口
  }捕捉(MalformedURLException e) {//TODO自动生成的catch块
  e.printStackTrace ();
  }
  }
  
  }

5, TestSoap

进口java.io.IOException;
  进口java.io.StringReader;
  进口java.io.StringWriter;
  进口java.net.URL;
  
  进口javax.xml.bind.JAXBContext;
  进口javax.xml.bind.JAXBException;
  进口javax.xml.bind.Marshaller;
  进口javax.xml.namespace.QName;
  进口javax.xml.soap.MessageFactory;
  进口javax.xml.soap.SOAPBody;
  进口javax.xml.soap.SOAPBodyElement;
  进口javax.xml.soap.SOAPEnvelope;
  进口javax.xml.soap.SOAPException;
  进口javax.xml.soap.SOAPHeader;
  进口javax.xml.soap.SOAPMessage;
  进口javax.xml.soap.SOAPPart;
  进口javax.xml.transform.Source;
  进口javax.xml.transform.Transformer;
  进口javax.xml.transform.TransformerConfigurationException;
  进口javax.xml.transform.TransformerException;
  进口javax.xml.transform.TransformerFactory;
  进口javax.xml.transform.TransformerFactoryConfigurationError;
  进口javax.xml.transform.dom.DOMResult;
  进口javax.xml.transform.stream.StreamSource;
  进口javax.xml.ws.Dispatch;
  进口javax.xml.ws.Service;
  进口javax.xml.ws.soap.SOAPFaultException;
  进口javax.xml.xpath.XPath;
  进口javax.xml.xpath.XPathConstants;
  进口javax.xml.xpath.XPathExpressionException;
  进口javax.xml.xpath.XPathFactory;
  
  进口org.junit.Test;
  进口org.soap.service.User;
  进口org.w3c.dom.Document;
  进口org.w3c.dom.Node;
  进口org.w3c.dom.NodeList;
  
  
  公开课TestSoap {
  
  私人字符串ns=癶ttp://service.soap.org/";
  私人字符串wsdlUrl=癶ttp://localhost: 8989/ms& # 63; wsdl";
  
  @Test
  公共空间test01 () {
  尝试{
  
  MessageFactory工厂=MessageFactory.newInstance ();
  
  SOAPMessage消息=factory.createMessage ();
  
  SOAPPart部分=message.getSOAPPart ();=part.getEnvelope SOAPEnvelope的信封();
  
  SOAPBody身体=envelope.getBody ();
  
  QName QName=new QName (“http://java.zttc.edu.cn/webservice"
  “add",“ns");//, lt; ns:添加xmlns=癶ttp://java.zttc.edu.cn/webservice"/和gt;//body.addBodyElement (qname) .setValue(“和lt;第一部gt; 1, lt;/第一部;gt;, lt; b& gt; 2, lt;/b& gt;“);
  SOAPBodyElement避署=body.addBodyElement (qname);
  ele.addChildElement (“a") .setValue (“22“);
  ele.addChildElement (“b") .setValue (“33”);
  
  message.writeTo (system . out);
  }捕捉(SOAPException e) {
  e.printStackTrace ();
  }捕捉(IOException e) {
  e.printStackTrace ();
  }
  }
  
  @Test
  公共空间test02 () {
  尝试{
  网址URL=new URL (wsdlUrl);
  QName sname=new QName (ns,“MyServiceImplService");
  服务服务=Service.create (url, sname);
  
  Dispatch&肝移植;SOAPMessage& gt;调度服务=reateDispatch(新QName (ns,“MyServiceImplPort"),
  SOAPMessage。类,Service.Mode.MESSAGE);
  
  .createMessage SOAPMessage味精=MessageFactory.newInstance () ();
  .getEnvelope SOAPEnvelope的信封=msg.getSOAPPart () ();
  SOAPBody身体=envelope.getBody ();
  
  QName ename=new QName (ns,“add",“nn");//, lt;神经网络:添加xmlns=皒x"/和gt;
  SOAPBodyElement避署=body.addBodyElement (ename);
  ele.addChildElement (“a") .setValue (“22“);
  ele.addChildElement (“b") .setValue (“33”);
  msg.writeTo (system . out);
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

网络服务方式如何在java项目中实现