加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WSDL

发布时间:2020-12-17 01:06:42 所属栏目:安全 来源:网络整理
导读:关于WSDL WSDL一般要和AXIS配合来使用。来生成WSDL jar包, 我们引入wsdl jar包,使用生成的jar包中的各种class类 一般要生成WSDL jar包,要使用WSDL配合AXIS来生成 JAR包就提供多个.class类,这些多个.class类就对应着原来的WSDL xml中的各个元素 我们如果
关于WSDL
WSDL一般要和AXIS配合来使用。来生成WSDL jar包,
我们引入wsdl jar包,使用生成的jar包中的各种class类

一般要生成WSDL jar包,要使用WSDL配合AXIS来生成
JAR包就提供多个.class类,这些多个.class类就对应着原来的WSDL xml中的各个元素

我们如果要发消息收读消息,就要涉及到两层
第一,数据的来源
? 数据可能来源于框架本身,框架收集用户输入的数据,用户输入的数据可能通过ActiveCardRequest等被传输进来之后
? 那么ActiveCardAgent类(该类中有发消息等的方法)中的方法就可以拿ActiveCardRequest中的数据
?
?
???????????? ?
??????????? ListOfDocument listOfCitiCardForCustomerInqRqDocument = ListOfRqDocument.Factory.newInstance();
??????????? ListOfRq listOfCitiCardForCustomerInq = listOfRqDocument.addNewCardForCustomerInqRq();
??????????? Custom? customerKey=listOfCitiCardForCustomerInq.addNewCustomerKey();
?????????? 由上到下,不断的通过层的递进方式来塞数据(塞数据的过程包含着java类的创建0),最终的结果就是,每一层的元素都会被一个java类代表。
??????????? 通过一层一层的方式就可以把数据塞进来
??????????? 要注意的是WSDL JAR被生成出来的时候,会包含很多的java bean,这些java bean就会包含wsdl xml 中的每一层元素
????????? ?
?????????? 框架把获取到的数据塞到由WSDL生成的java 类中。
?????????? 框架再通过
????????? ?
?????????? 最终通过XML形式将数据发送出去。返回一个response.
????????? ?
????????? ?
????????? ?
?????????? 遗留问题:agent类从哪来,是否在wsdl jar包中。
?????????? 最后到底是发request,还是发其他的
?????????? 消息最终是从哪里过来的。

http://wenku.baidu.com/view/d5140cea81c758f5f61f67c4.html 百度文库关于WSDL

百度搜索引擎技术:

http://topic.csdn.net/u/20110218/16/c2789421-b3da-4466-870c-8adae2c8771d.html

http://wenku.baidu.com/view/332753c66137ee06eff9182d.html?from=rec&pos=2&weight=143&lastweight=126&count=5

a

axis+webservice



?a

axis2WebService

http://wenku.baidu.com/view/12501ed7195f312b3169a54b.html?from=rec&pos=0&weight=322&lastweight=126&count=5


如何生成wsdl 包

http://wenku.baidu.com/view/3d86561910a6f524ccbf8568.html


http://book.51cto.com/art/200911/163639.htm



WEB服务建模,生成WSDL jar包

http://www.cnblogs.com/mingzi/archive/2009/03/09/1406969.html


ListOfCardForCustomerInqRqDocument listOfCardForCustomerInqRqDocument = ListOfCardForCustomerInqRqDocument.Factory.newInstance();
??????????? ListOfCardForCustomerInqRq listOfCardForCustomerInq = listOfCardForCustomerInqRqDocument.addNewListOfCardForCustomerInqRq();
??????????? CustomerKey customerKey=listOfCardForCustomerInq.addNewCustomerKey();
??????????? customerKey.setCustomerNo(getCustomerNumber(message));
??????????? listOfCardForCustomerInq.setCustomerKey(customerKey);
??????????? CustomerGenericServiceStub stub = (CustomerGenericServiceStub) JFPBeanFactory.getBean("CustomerGenericService");
??????????? RqHeaderDocument headerDoc = RqHeaderDocument.Factory.newInstance();
??????????? RqHeader header = headerDoc.addNewRqHeader();
??????????? DenormalizerHelper.populateTIBCOHeader(header,getIssuerBusinessUnit(),"ListOfCitiCardForCustomerInq");
?????????? ?
??????????? ListOfCardForCustomerInqRsDocument listOfCardForCustomerInqRsDocument = stub.ListOfCardForCustomerInq(listOfCardForCustomerInqRqDocument,headerDoc);
??????????? ListOfCardForCustomerInqRs rs = listOfCardForCustomerInqRsDocument.getListOfCardForCustomerInqRs();



===================================================webservice实例=====================

http://www.iteye.com/problems/69381



是这样的,我参考http://www.ibm.com/developerworks/cn/xml/x-jaxmsoap/中的示例,进行测试,由于示例中的WebService不能用,我自己用myEclipse中的JAX-WS框架创建了一个简单的WebService——myFirstWS,myFirstWS对外提供一个sayHello(String name)方法,这个方法返回name+",this is my first Jaxws!". ??? 当客户端调用时,当传入的name为中文的时候,在服务器端接受到的参数很正常,不出现乱码,但是返回到客户端的消息中就会出现乱码。具体代码如下: import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPConnection; import javax.xml.soap.SOAPConnectionFactory; import javax.xml.soap.SOAPElement; import javax.xml.soap.SOAPEnvelope; import javax.xml.soap.SOAPMessage; import javax.xml.soap.SOAPPart; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; public class SOAPTip { public static void main(String args[]) { try { // First create the connection SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance(); SOAPConnection connection = soapConnFactory.createConnection(); //Next,create the actual message ???????? MessageFactory messageFactory = MessageFactory.newInstance(); ???????? SOAPMessage message = messageFactory.createMessage(); ??????? ???????? message.setProperty(SOAPMessage.CHARACTER_SET_ENCODING,"gb2312"); ???????? SOAPPart soapPart = message.getSOAPPart(); ???????? ???????? //Create objects for the message parts??????????? ???????? SOAPEnvelope envelope = soapPart.getEnvelope(); ???????? SOAPBody body = envelope.getBody(); ??????? ???????? //Populate the body ???????? //Create the main element and namespace ???????? SOAPElement bodyElement = body.addChildElement(envelope.createName("sayHello","ns1","http://jaxws.shaw.com/")); ???????? ???????? //Add content ???????? String city = "北京"; ???????? bodyElement.addChildElement("arg0").addTextNode(city); ???????? ???????? //Save the message ???????? message.saveChanges(); ???????? ???????? //Check the input ???????? System.out.println("nREQUEST:n"); ???????? message.writeTo(System.out); ???????? System.out.println(); ???????? ???????? //Send the message and get a reply?? ??????????? ???????? //Set the destination ???????? String destination = "http://localhost:8080/myFirstWS/HelloJaxwsPort?wsdl"; ???????? //Send the message ???????? SOAPMessage reply = connection.call(message,destination); ???????? //Check the output ???????? System.out.println("nRESPONSE:n"); ???????? //Create the transformer ???????? TransformerFactory transformerFactory = TransformerFactory.newInstance(); ???????? Transformer transformer = transformerFactory.newTransformer(); ???????? //Extract the content of the reply ???????? Source sourceContent = reply.getSOAPPart().getContent(); ???????? ???????? //Set the output for the transformation ???????? StreamResult result = new StreamResult(System.out); ???????? transformer.transform(sourceContent,result); ???????? System.out.println(); ???????? // Close the connection connection.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } } ???? 上面的程序传入的name为“北京”,运行之后,客户端接收到如下消息: <?xml version="1.0" encoding="UTF-8" standalone="no"?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:sayHelloResponse xmlns:ns2="http://jaxws.shaw.com/"><return>鍖椾含,this is my first Jaxws!</return></ns2:sayHelloResponse></S:Body></S:Envelope> ???? 请各位帮忙看一下问题出在什么地方?谢谢。 ???? 另外,myFirstWS的wsdl和xsd文档如下: wsdl: ? <?xml version="1.0" encoding="UTF-8" ?> - <!--? Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-b01-. ? --> - <!--? Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-b01-. ? --> - <definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://jaxws.shaw.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://jaxws.shaw.com/" name="HelloJaxwsService"> - <types> - <xsd:schema> ? <xsd:import namespace="http://jaxws.shaw.com/" schemaLocation="http://localhost:8080/myFirstWS/HelloJaxwsPort?xsd=1" /> ? </xsd:schema> ? </types> - <message name="add"> ? <part name="parameters" element="tns:add" /> ? </message> - <message name="addResponse"> ? <part name="parameters" element="tns:addResponse" /> ? </message> - <message name="sayHello"> ? <part name="parameters" element="tns:sayHello" /> ? </message> - <message name="sayHelloResponse"> ? <part name="parameters" element="tns:sayHelloResponse" /> ? </message> - <portType name="HelloJaxwsDelegate"> - <operation name="add"> ? <input wsam:Action="http://jaxws.shaw.com/HelloJaxwsDelegate/addRequest" message="tns:add" /> ? <output wsam:Action="http://jaxws.shaw.com/HelloJaxwsDelegate/addResponse" message="tns:addResponse" /> ? </operation> - <operation name="sayHello"> ? <input wsam:Action="http://jaxws.shaw.com/HelloJaxwsDelegate/sayHelloRequest" message="tns:sayHello" /> ? <output wsam:Action="http://jaxws.shaw.com/HelloJaxwsDelegate/sayHelloResponse" message="tns:sayHelloResponse" /> ? </operation> ? </portType> - <binding name="HelloJaxwsPortBinding" type="tns:HelloJaxwsDelegate"> ? <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - <operation name="add"> ? <soap:operation soapAction="" /> - <input> ? <soap:body use="literal" /> ? </input> - <output> ? <soap:body use="literal" /> ? </output> ? </operation> - <operation name="sayHello"> ? <soap:operation soapAction="" /> - <input> ? <soap:body use="literal" /> ? </input> - <output> ? <soap:body use="literal" /> ? </output> ? </operation> ? </binding> - <service name="HelloJaxwsService"> - <port name="HelloJaxwsPort" binding="tns:HelloJaxwsPortBinding"> ? <soap:address location="http://localhost:8080/myFirstWS/HelloJaxwsPort" /> ? </port> ? </service> ? </definitions> xsd: ? <?xml version="1.0" encoding="UTF-8" ?> - <!--? Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.1-b01-. ? --> - <xs:schema xmlns:tns="http://jaxws.shaw.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" targetNamespace="http://jaxws.shaw.com/"> ? <xs:element name="add" type="tns:add" /> ? <xs:element name="addResponse" type="tns:addResponse" /> ? <xs:element name="sayHello" type="tns:sayHello" /> ? <xs:element name="sayHelloResponse" type="tns:sayHelloResponse" /> - <xs:complexType name="sayHello"> - <xs:sequence> ? <xs:element name="arg0" type="xs:string" minOccurs="0" /> ? </xs:sequence> ? </xs:complexType> - <xs:complexType name="sayHelloResponse"> - <xs:sequence> ? <xs:element name="return" type="xs:string" minOccurs="0" /> ? </xs:sequence> ? </xs:complexType> - <xs:complexType name="add"> - <xs:sequence> ? <xs:element name="arg0" type="xs:int" /> ? <xs:element name="arg1" type="xs:int" /> ? </xs:sequence> ? </xs:complexType> - <xs:complexType name="addResponse"> - <xs:sequence> ? <xs:element name="return" type="xs:int" /> ? </xs:sequence> ? </xs:complexType> ? </xs:schema>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读