⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 soapserializationenvelopetest.java.svn-base

📁 it is a tools for developing J2ME application using web service.
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
     *  <s:element name="GetStatusResponse">     *    <s:complexType>     *     <s:sequence>     *       <s:element minOccurs="0" maxOccurs="1" name="GetStatusResult" type="s0:ReplyBase"/>     *       <s:element minOccurs="0" maxOccurs="1" name="Status" type="s0:ServerStatus"/>     *      </s:sequence>     *    </s:complexType>     *  </s:element>     *<s:complexType name="ReplyBase">     *   <s:attribute name="RcvTime" type="s:dateTime" use="required"/>     *   <s:attribute name="ReplyTime" type="s:dateTime" use="required"/>     *   <s:attribute name="ClientRequestHandle" type="s:string"/>     *   <s:attribute name="RevisedLocaleID" type="s:string"/>     *   <s:attribute name="ServerState" type="s0:serverState" use="required"/>     *</s:complexType>     *<s:simpleType name="serverState">     *  <s:restriction base="s:string">     *     <s:enumeration value="running"/>     *     <s:enumeration value="failed"/>     *     <s:enumeration value="noConfig"/>     *     <s:enumeration value="suspended"/>     *     <s:enumeration value="test"/>     *    <s:enumeration value="commFault"/>     *  </s:restriction>     *</s:simpleType>     * <s:complexType name="ServerStatus">     *   <s:sequence>     *     <s:element minOccurs="0" maxOccurs="1" name="StatusInfo" type="s:string"/>     *     <s:element minOccurs="0" maxOccurs="1" name="VendorInfo" type="s:string"/>     *     <s:element minOccurs="0" maxOccurs="unbounded" name="SupportedLocaleIDs" type="s:string"/>     *     <s:element minOccurs="0" maxOccurs="unbounded" name="SupportedInterfaceVersions" type="s0:interfaceVersion"/>     *   </s:sequence>     *   <s:attribute name="StartTime" type="s:dateTime" use="required"/>     *   <s:attribute name="ProductVersion" type="s:string"/>     * </s:complexType>     *  <s:simpleType name="interfaceVersion">     *   <s:restriction base="s:string">     *      <s:enumeration value="XML_DA_Version_1_0"/>     *    </s:restriction>     *  </s:simpleType>     *       *  In other words, we call "getStatus" on the service, with "LocaleID" and "ClientRequestHandle" available     *  as attributes.  The response  has two objects "ReplyBase" and "ServerStatus".  Each of these have a hodgepog     *  of attributes, sequences and enumerations.     *       *  The output message should look, more or less like this (from the specification):     *       *  <soap:Body>     *  <getStatus     *     LocaleID="de-AT" xmlns="http://opcfoundation.org/webservices/XMLDA/1.0/"     *  />     *</soap:Body>     *     * and the response more or less like this (from the specification):     *      * <soap:Body>     *  <GetStatusResponse xmlns="http://opcfoundation.org/webservices/XMLDA/1.0/">     *    <GetStatusResult     *       RcvTime="2003-05-26T20:17:42.4781250-07:00"     *       ReplyTime="2003-05-26T20:17:42.5781250-07:00"     *       RevisedLocaleID="de"     *       ServerState="running"     *    />     *    <Status     *       StartTime="2003-05-26T20:16:45.0937500-07:00"     *       ProductVersion="1.00.1.00"     *    >     *      <VendorInfo>OPC XML Data Access 1.00 Sample Server</VendorInfo>     *      <SupportedLocaleIDs>en</SupportedLocaleIDs>     *      <SupportedLocaleIDs>en-US</SupportedLocaleIDs>     *      <SupportedLocaleIDs>de</SupportedLocaleIDs>     *      <SupportedInterfaceVersions>XML_DA_Version_1_0</SupportedInterfaceVersions>     *    </Status>     *  </GetStatusResponse>     *</soap:Body>     */    /**      * This will generate an XML string from a SoapObject/SoapEnvelope that represents the "getStatus"     * call in the WSDL above.  The resulting XML will be passed to "public void testGetStatus(String xmlString)"     * to ensure AXIS compatibility (and compatibility with the published standards).     */    public void testGetStatusSoapObject() throws Throwable {        SoapObject getStatus = new SoapObject("http://opcfoundation.org/webservices/XMLDA/1.0/", "getStatus");        getStatus.addAttribute("LocaleID", "de-AT");        getStatus.addAttribute("ClientRequestHandle", "ClientHandle");        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);        envelope.bodyOut = getStatus;        envelope.setAddAdornments(false);        byte[] request = myTransport.createRequestData(envelope);        String xmlString = new String(request);        assertGetStatus(xmlString);    }    /** The string that represents the "getStatus".  This is copied from an Axis call. */    protected static final String getStatusRequest = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" + "<soapenv:Body><getStatus ClientRequestHandle=\"ClientHandle\" LocaleID=\"de-AT\" xmlns=\"http://opcfoundation.org/webservices/XMLDA/1.0/\"/></soapenv:Body>" + "</soapenv:Envelope>";    /** Test the status using the AXIS generated xml.      * @throws Throwable */    public void testGetStatus() throws Throwable {        assertGetStatus(getStatusRequest);    }    /**      * Test getStatus by passing in an xmlString.  The result should be the same with an Axis or ksoap     * generated string (clearly).     * @param xmlString the xml string to test.     * @throws Throwable      */    public void assertGetStatus(String xmlString) throws Throwable {        serviceCallCount = 0; // zero this        Object service = new GetStatus();        envelope.addMapping("http://opcfoundation.org/webservices/XMLDA/1.0/", "getStatus", SoapObject.class);        envelope.setAddAdornments(false);        ByteArrayInputStream bis = new ByteArrayInputStream(xmlString.getBytes());        XmlPullParser parser = new KXmlParser();        parser.setInput(bis, "UTF-8");        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);        envelope.parse(parser);        SoapObject soapReq = (SoapObject) envelope.bodyIn;        assertEquals("ClientHandle", soapReq.getAttribute("ClientRequestHandle"));        SoapObject result = null;        result = MockTransport.invoke(service, soapReq);                assertEquals("Service Called ", 1, serviceCallCount);        //assert contents of result;    }    /**      * This will generate an XML string from a SoapObject/SoapEnvelope that represents the "GetStatusResponse"     * call in the WSDL above.  The resulting XML will be passed to      * "public void testGetStatusResponse(String xmlString)"     * to ensure AXIS compatibility (and compatibility with the published standards).     */    public void testGetStatusResponseSoapObject() throws Throwable {        SoapObject getStatusResponse = new SoapObject("http://opcfoundation.org/webservices/XMLDA/1.0/", "GetStatusResponse");        SoapObject getStatusResult = new SoapObject("http://opcfoundation.org/webservices/XMLDA/1.0/", "GetStatusResult");        getStatusResult.addAttribute("RcvTime", "2003-05-26T20:17:42.4781250-07:00");        getStatusResult.addAttribute("ReplyTime", "2003-05-26T20:17:42.5781250-07:00");        getStatusResult.addAttribute("RevisedLocaleID", "de");        getStatusResult.addAttribute("ServerState", "running");        SoapObject status = new SoapObject("http://opcfoundation.org/webservices/XMLDA/1.0/", "Status");        status.addAttribute("StartTime", "2003-05-26T20:16:45.0937500-07:00");        status.addAttribute("ProductVersion", "1.00.1.00");        status.addProperty("VendorInfo", "OPC XML Data Access 1.00 Sample Server");        status.addProperty("SupportedLocaleIDs", "en");        status.addProperty("SupportedLocaleIDs", "en-US");        status.addProperty("SupportedLocaleIDs", "de");        status.addProperty("SupportedInterfaceVersions", "XML_DA_Version_1_0");        getStatusResponse.addProperty("GetStatusResult", getStatusResult);        getStatusResponse.addProperty("Status", status);        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);        envelope.bodyOut = getStatusResponse;        envelope.setImplicitTypes(true);        envelope.setAddAdornments(false);        byte[] request = null;        request = myTransport.createRequestData(envelope);        String xmlString = new String(request);        assertGetStatusResponse(xmlString);    }    /**      * GetStatusResponse XML.  The body is from the OPC Foundation manual, the envelope     * is from the AXIS envelope above.      */    protected static final String getStatusResponse = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" + "  <soapenv:Body>" + "  <GetStatusResponse xmlns=\"http://opcfoundation.org/webservices/XMLDA/1.0/\">" + "    <GetStatusResult" + "       RcvTime=\"2003-05-26T20:17:42.4781250-07:00\"" + "       ReplyTime=\"2003-05-26T20:17:42.5781250-07:00\"" + "       RevisedLocaleID=\"de\"" + "       ServerState=\"running\"" + "    />" + "    <Status" + "       StartTime=\"2003-05-26T20:16:45.0937500-07:00\"" + "       ProductVersion=\"1.00.1.00\"" + "    >" + "      <VendorInfo>OPC XML Data Access 1.00 Sample Server</VendorInfo>" + "      <SupportedLocaleIDs>en</SupportedLocaleIDs>" + "      <SupportedLocaleIDs>en-US</SupportedLocaleIDs>" + "      <SupportedLocaleIDs>de</SupportedLocaleIDs>" + "      <SupportedInterfaceVersions>XML_DA_Version_1_0</SupportedInterfaceVersions>" + "    </Status>" + "  </GetStatusResponse>" + "</soapenv:Body>" + "</soapenv:Envelope>";    /**      * Test the response from "getStatus".  The body is from the OPC Foundation manual, the envelope     * is from the AXIS envelope above.       * @throws Throwable      */    public void testGetStatusResponse() throws Throwable {        assertGetStatusResponse(getStatusResponse);    }    /**      * Test the response from "getStatus".       * @throws Throwable      */    public void assertGetStatusResponse(String xmlString) throws Throwable {        ByteArrayInputStream is = new ByteArrayInputStream(xmlString.toString().getBytes());        envelope.addMapping("http://opcfoundation.org/webservices/XMLDA/1.0/", "GetStatusResponse", SoapObject.class);        envelope.addMapping("http://opcfoundation.org/webservices/XMLDA/1.0/", "Status", SoapObject.class);        envelope.addMapping("http://opcfoundation.org/webservices/XMLDA/1.0/", "GetStatusResult", SoapObject.class);        myTransport.parseResponse(envelope, is);        is.close();        SoapObject response = (SoapObject) envelope.bodyIn;        assertEquals(" Two Parameter (GetStatusResponse)", 2, ((SoapObject) response).getPropertyCount());        assertEquals(" No Attributes (GetStatusResponse)", 0, ((SoapObject) response).getAttributeCount());        // first property is "GetStatusResult"        SoapObject getStatusResult = (SoapObject) response.getProperty("GetStatusResult");        assertNotNull(" GetStatusResult ", getStatusResult);        assertEquals(" No Parameters (GetStatusResult)", 0, getStatusResult.getPropertyCount());        assertEquals(" Four Attributes (GetStatusResult)", 4, getStatusResult.getAttributeCount());        assertEquals("2003-05-26T20:17:42.4781250-07:00", getStatusResult.getAttribute("RcvTime"));        assertEquals("2003-05-26T20:17:42.5781250-07:00", getStatusResult.getAttribute("ReplyTime"));        assertEquals("running", getStatusResult.getAttribute("ServerState"));        // first property is "Status"        SoapObject status = (SoapObject) response.getProperty("Status");        assertEquals(" Five Parameters (Status)", 5, status.getPropertyCount());        assertEquals(" Two Attributes (Status)", 2, status.getAttributeCount());        assertEquals("2003-05-26T20:16:45.0937500-07:00", status.getAttribute("StartTime"));        assertEquals("1.00.1.00", status.getAttribute("ProductVersion"));    }    public static class GetStatus {        public SoapObject getStatus(SoapObject in) {            serviceCallCount++;            assertEquals("Should be two attributes. ", 2, in.getAttributeCount());            assertEquals("LocaleID ", "de-AT", in.getAttribute("LocaleID"));            assertEquals("ClientRequestHandle ", "ClientHandle", in.getAttribute("ClientRequestHandle"));            return null;        }    };}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -