Author: dims
Date: Wed Nov  2 10:36:39 2005
New Revision: 330310

URL: http://svn.apache.org/viewcvs?rev=330310&view=rev
Log:
Test case for AXIS-2013 from Hans ("Deserialization of Exception fails")


Added:
    webservices/axis/trunk/java/test/wsdl/faults2/
    webservices/axis/trunk/java/test/wsdl/faults2/FaultService.wsdl
    
webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceSoapBindingImpl.java
    webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceTestCase.java
    webservices/axis/trunk/java/test/wsdl/faults2/build.xml

Added: webservices/axis/trunk/java/test/wsdl/faults2/FaultService.wsdl
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/test/wsdl/faults2/FaultService.wsdl?rev=330310&view=auto
==============================================================================
--- webservices/axis/trunk/java/test/wsdl/faults2/FaultService.wsdl (added)
+++ webservices/axis/trunk/java/test/wsdl/faults2/FaultService.wsdl Wed Nov  2 
10:36:39 2005
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<definitions targetNamespace="http://test.com/wsdl/faults"; 

+     xmlns:tns="http://test.com/wsdl/faults";

+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 

+     xmlns:serviceNS="http://test.com/wsdl/faults";

+     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 

+     xmlns="http://schemas.xmlsoap.org/wsdl/";>

+

+  <types>

+    <xsd:schema 

+        targetNamespace="http://test.com/wsdl/faults";>

+

+      <xsd:element name="throwFaultResponse">

+      <xsd:complexType>

+        <xsd:sequence>

+          <xsd:element name="return" type="xsd:string"/>

+        </xsd:sequence>

+      </xsd:complexType>

+      </xsd:element>

+

+      <xsd:element name="throwFault">

+      <xsd:complexType>

+        <xsd:sequence>

+          <xsd:element name="p1" type="xsd:string"/>

+          <xsd:element name="p2" type="xsd:string"/>

+        </xsd:sequence>

+      </xsd:complexType>

+      </xsd:element>

+

+      <xsd:complexType name="TestFault">

+        <xsd:sequence>

+          <xsd:element name="a" type="xsd:string"/>

+          <xsd:element name="b" type="xsd:int"/>

+          <xsd:element name="c" type="xsd:string"/>

+        </xsd:sequence>

+      </xsd:complexType>

+

+    </xsd:schema>

+  </types>

+

+  <message name="throwFaultResponseMessage">

+    <part name="responseParams" element="tns:throwFaultResponse"/>

+  </message>

+  <message name="throwFaultRequestMessage">

+    <part name="requestParams" element="tns:throwFault"/>

+<!--type="xsd:string"

+    <part name="p2" type="xsd:string"/-->

+  </message>

+  <message name="throwFaultFault">

+    <part name="msg" type="tns:TestFault" />

+  </message>

+

+  <portType name="FaultServicePortType">

+    <operation name="throwFault" parameterOrder="">

+      <input name="throwFaultRequest" 
message="serviceNS:throwFaultRequestMessage"/>

+      <output name="throwFaultResponse" 
message="serviceNS:throwFaultResponseMessage"/>

+      <fault name="throwFaultFault" message="serviceNS:throwFaultFault"/>

+    </operation>

+  </portType>

+  <binding name="FaultServiceSoapBinding" 
type="serviceNS:FaultServicePortType">

+    <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>

+    <operation name="throwFault">

+      <soap:operation soapAction="" style="document"/>

+      <input name="throwFaultRequest">

+        <soap:body use="literal"/>

+      </input>

+      <output name="throwFaultResponse">

+        <soap:body use="literal"/>

+      </output>

+      <fault name="throwFaultFault">

+        <soap:fault name="throwFaultFault" use="literal"/>

+      </fault>

+    </operation>

+  </binding>

+  <service name="FaultService">

+    <port name="FaultService" binding="serviceNS:FaultServiceSoapBinding">

+      <soap:address 
location="http://localhost:8080/axis/services/FaultService"/>

+    </port>

+  </service>

+</definitions>


Added: 
webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceSoapBindingImpl.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceSoapBindingImpl.java?rev=330310&view=auto
==============================================================================
--- 
webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceSoapBindingImpl.java 
(added)
+++ 
webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceSoapBindingImpl.java 
Wed Nov  2 10:36:39 2005
@@ -0,0 +1,14 @@
+package test.wsdl.faults2;

+

+import org.apache.axis.message.MessageElement;

+import org.apache.axis.utils.XMLUtils;

+

+public class FaultServiceSoapBindingImpl implements 
test.wsdl.faults2.FaultServicePortType {

+

+    public String throwFault(java.lang.String p1, java.lang.String p2) throws 
java.rmi.RemoteException, test.wsdl.faults2.TestFault {

+        if (p1.equals("throw") || p2.equals("throw")) {

+            throw new TestFault(p1,0,p2);

+        }

+        return p2 + " " + p1;

+    }

+}


Added: webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceTestCase.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceTestCase.java?rev=330310&view=auto
==============================================================================
--- webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceTestCase.java 
(added)
+++ webservices/axis/trunk/java/test/wsdl/faults2/FaultServiceTestCase.java Wed 
Nov  2 10:36:39 2005
@@ -0,0 +1,50 @@
+/**

+ * FaultServiceTestCase.java

+ *

+ * This file was auto-generated from WSDL

+ * by the Apache Axis 1.2.1 Oct 12, 2005 (05:12:52 CEST) WSDL2Java emitter.

+ */

+

+package test.wsdl.faults2;

+

+public class FaultServiceTestCase extends junit.framework.TestCase {

+    public FaultServiceTestCase(java.lang.String name) {

+        super(name);

+    }

+

+    public void testFaultServiceWSDL() throws Exception {

+        javax.xml.rpc.ServiceFactory serviceFactory = 
javax.xml.rpc.ServiceFactory.newInstance();

+        java.net.URL url = new java.net.URL(new 
test.wsdl.faults2.FaultServiceLocator().getFaultServiceAddress() + "?WSDL");

+        javax.xml.rpc.Service service = serviceFactory.createService(url, new 
test.wsdl.faults2.FaultServiceLocator().getServiceName());

+        assertTrue(service != null);

+    }

+

+    public void test1FaultServiceThrowFault() throws Exception {

+        test.wsdl.faults2.FaultServiceSoapBindingStub binding;

+        try {

+            binding = (test.wsdl.faults2.FaultServiceSoapBindingStub)

+                          new 
test.wsdl.faults2.FaultServiceLocator().getFaultService();

+        }

+        catch (javax.xml.rpc.ServiceException jre) {

+            if(jre.getLinkedCause()!=null)

+                jre.getLinkedCause().printStackTrace();

+            throw new junit.framework.AssertionFailedError("JAX-RPC 
ServiceException caught: " + jre);

+        }

+        assertNotNull("binding is null", binding);

+

+        // Time out after a minute

+        binding.setTimeout(60000);

+

+        // Test operation

+        try {

+            java.lang.String value = null;

+            value = binding.throwFault("throw","throw");

+        }

+        catch (test.wsdl.faults2.TestFault e1) {

+            System.out.println("TESTFAULT EXCEPTION THROWN");

+            //throw new junit.framework.AssertionFailedError("throwFaultFault 
Exception caught: " + e1);

+        }

+            // TBD - validate results

+    }

+

+}


Added: webservices/axis/trunk/java/test/wsdl/faults2/build.xml
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/test/wsdl/faults2/build.xml?rev=330310&view=auto
==============================================================================
--- webservices/axis/trunk/java/test/wsdl/faults2/build.xml (added)
+++ webservices/axis/trunk/java/test/wsdl/faults2/build.xml Wed Nov  2 10:36:39 
2005
@@ -0,0 +1,103 @@
+<?xml version="1.0" ?>

+<!DOCTYPE project [

+        <!ENTITY properties SYSTEM "file:../../../xmls/properties.xml">

+        <!ENTITY paths  SYSTEM "file:../../../xmls/path_refs.xml">

+        <!ENTITY taskdefs SYSTEM "file:../../../xmls/taskdefs.xml">

+        <!ENTITY taskdefs_post_compile SYSTEM 
"file:../../../xmls/taskdefs_post_compile.xml">

+        <!ENTITY targets SYSTEM "file:../../../xmls/targets.xml">

+]>

+

+<!-- ===================================================================

+<description>

+   Test/Sample Component file for Axis

+

+Notes:

+   This is a build file for use with the Jakarta Ant build tool.

+

+Prerequisites:

+

+   jakarta-ant from http://jakarta.apache.org

+

+Build Instructions:

+   To compile

+        ant compile

+   To execute

+        ant run

+

+Author:

+  Matt Seibert [EMAIL PROTECTED]

+

+Copyright:

+  Copyright (c) 2002-2003 Apache Software Foundation.

+</description>

+==================================================================== -->

+

+<project default="compile">

+

+<property name="axis.home" location="../../.." />

+<property name="componentName" value="test/wsdl/faults2" />

+        &properties;

+        &paths;

+        &taskdefs;

+        &taskdefs_post_compile;

+        &targets;

+

+<target name="clean">

+    <echo message="Removing ${build.dir}/classes/${componentName} and 
${build.dir}/work/${componentName}" />

+    <delete dir="${build.dir}/classes/${componentName}"/>

+    <delete dir="${build.dir}/work/${componentName}"/>

+</target>

+

+<target name="copy" depends="setenv"/>

+

+<target name="addGlobalConfigWsdd">

+    <replace file="${build.dir}/work/${componentName}/deploy.wsdd"

+        token="&lt;!-- Services from FaultService WSDL service --&gt;"

+               value="&lt;globalConfiguration&gt;&lt;parameter 
name='sendMultiRefs' value='false'/&gt;&lt;/globalConfiguration&gt;">

+      </replace>

+</target>

+

+<target name="enableSendMultiRefs">

+    <echo message="setting 'sendMultiRefs=true' in deploy.wsdd..."/>

+    <replace file="${build.dir}/work/${componentName}/deploy.wsdd"

+        token="parameter name=&apos;sendMultiRefs&apos; 
value=&apos;false&apos;"

+        value="parameter name=&apos;sendMultiRefs&apos; 
value=&apos;true&apos;">

+    </replace>

+</target>

+

+<target name="compile" depends="copy">

+  <echo message="Compiling test.wsdl.faults2"/>

+    <!-- WSDL fault generation test -->

+    <wsdl2java url="${axis.home}/test/wsdl/faults2/FaultService.wsdl"

+               output="${axis.home}/build/work"

+               testcase="yes"

+               deployscope="Application"

+               serverSide="yes"

+               verbose="no"

+               noimports="no">

+        <mapping namespace="http://test.com/wsdl/faults"; 
package="test.wsdl.faults2"/>

+    </wsdl2java>

+

+    <echo message="adding 'sendMultiRefs=false' to deploy.wsdd..."/>

+    <antcall target="addGlobalConfigWsdd"/>

+

+    <copy todir="${build.dir}/work/test/wsdl/faults2" overwrite="yes">

+      <fileset dir="${axis.home}/test/wsdl/faults2">

+        <include name="*.java"/>

+      </fileset>

+    </copy>

+

+    <javac srcdir="${build.dir}/work" destdir="${build.dest}" 
nowarn="${nowarn}" source="${source}" fork="${javac.fork}"

+           debug="${debug}">

+      <classpath refid="classpath" />

+      <include name="test/wsdl/faults2/*.java" />

+    </javac>

+</target>

+

+<target name="run" >

+  <antcall target="execute-Component" />

+  <antcall target="enableSendMultiRefs" />

+  <antcall target="execute-Component" />

+</target>

+

+</project>



Reply via email to