You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ro...@apache.org on 2008/04/01 21:14:01 UTC
svn commit: r643524 - in /webservices/axis2/trunk/java/modules:
jaxws-integration/ jaxws-integration/test-resources/
jaxws-integration/test/org/apache/axis2/jaxws/framework/
jaxws-integration/test/org/apache/axis2/jaxws/sample/
jaxws-integration/test/o...
Author: rott
Date: Tue Apr 1 12:13:57 2008
New Revision: 643524
URL: http://svn.apache.org/viewvc?rev=643524&view=rev
Log:
AXIS2-3666:
1) In jaxws-integration: AbstractTestCase, SimpleServer, etc, enhanced to take path to custom repository and configuration file.
2) build.xml and axis2_addressing.xml files added to pull in addressing mar and put Addressing in the phases
3) test added to RuntimeExceptionsAsyncMepTest that uses Addressing, async-on-the-wire to test server AsyncInvocationWorker.call() fault response flow
Added:
webservices/axis2/trunk/java/modules/jaxws-integration/build.xml
webservices/axis2/trunk/java/modules/jaxws-integration/test-resources/axis2_addressing.xml
Modified:
webservices/axis2/trunk/java/modules/jaxws-integration/pom.xml
webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/AbstractTestCase.java
webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/StartServer.java
webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/RuntimeExceptionsAsyncMepTest.java
webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncClient.java
webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/InvocationHelper.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/server/JAXWSServerTests.java
Added: webservices/axis2/trunk/java/modules/jaxws-integration/build.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/build.xml?rev=643524&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/build.xml (added)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/build.xml Tue Apr 1 12:13:57 2008
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<project name="itest" default="build-repo" basedir=".">
+
+ <target name="build-repo" unless="test.skip">
+
+ <!-- Standard repository -->
+ <mkdir dir="target/repository"/>
+ <mkdir dir="target/repository/conf"/>
+ <mkdir dir="target/repository/services"/>
+ <mkdir dir="target/repository/modules"/>
+ <copy file="../addressing/target/addressing-${addressing_version}.mar"
+ tofile="target/repository/modules/addressing-${addressing_version}.mar"/>
+ <copy file="../kernel/conf/axis2.xml"
+ tofile="target/repository/conf/axis2.xml"/>
+
+ </target>
+
+</project>
Modified: webservices/axis2/trunk/java/modules/jaxws-integration/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/pom.xml?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/pom.xml (original)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/pom.xml Tue Apr 1 12:13:57 2008
@@ -43,6 +43,12 @@
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
+ <artifactId>addressing</artifactId>
+ <version>${version}</version>
+ <type>mar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
<artifactId>axis2-jaxws-api</artifactId>
<version>${version}</version>
</dependency>
@@ -419,6 +425,16 @@
<configuration>
<tasks>
+ <!-- Enable Addressing on the client side -->
+ <mkdir dir="./target/client-repo/modules/"/>
+ <copy file="../addressing/target/addressing-${version}.mar"
+ tofile="./target/client-repo/modules/addressing-${version}.mar"/>
+
+ <!-- Enable Addressing on the server side -->
+ <mkdir dir="./target/test-classes/modules/"/>
+ <copy file="../addressing/target/addressing-${version}.mar"
+ tofile="./target/test-classes/modules/addressing-${version}.mar"/>
+
<!-- ================================================================ -->
<!--- Non-JAXWS services -->
<!-- ================================================================ -->
@@ -1246,7 +1262,6 @@
<!-- Enable the next 2 lines if you want to attach a debugger
<argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
<includes>
-
<include>**/MultiRedirectionCatalogTest.java</include>
<include>**/DispatchSoapActionTest.java</include>
<include>**/ProxySoapActionTest.java</include>
@@ -1344,6 +1359,11 @@
<property>
<name>org.apache.axis2.jaxws.config.path</name>
<value>./target/test-classes/axis2.xml</value>
+ </property>
+ <!-- Need this for the client side to pickup the addressing mar -->
+ <property>
+ <name>org.apache.axis2.jaxws.repo.path</name>
+ <value>./target/client-repo</value>
</property>
</systemProperties>
</configuration>
Added: webservices/axis2/trunk/java/modules/jaxws-integration/test-resources/axis2_addressing.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/test-resources/axis2_addressing.xml?rev=643524&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/test-resources/axis2_addressing.xml (added)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/test-resources/axis2_addressing.xml Tue Apr 1 12:13:57 2008
@@ -0,0 +1,477 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<axisconfig name="AxisJava2.0">
+ <!-- ================================================= -->
+ <!-- Parameters -->
+ <!-- ================================================= -->
+ <parameter name="hotdeployment">true</parameter>
+ <parameter name="hotupdate">false</parameter>
+ <parameter name="enableMTOM">false</parameter>
+ <parameter name="enableSwA">false</parameter>
+
+ <!--Uncomment if you want to enable file caching for attachments -->
+ <!--parameter name="cacheAttachments">true</parameter>
+ <parameter name="attachmentDIR"></parameter>
+ <parameter name="sizeThreshold">4000</parameter-->
+
+ <!--Uncomment if you want to plugin your own attachments lifecycle implementation -->
+ <!--<attachmentsLifecycleManager class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>-->
+
+
+ <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
+ <!--In some server environments, the available memory heap is limited and can fill up under load -->
+ <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
+ <!--to reduce the memory needed for the cached WSDL definitions. -->
+ <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
+
+ <!--This will give out the timout of the configuration contexts, in milliseconds-->
+ <parameter name="ConfigContextTimeoutInterval">30000</parameter>
+
+ <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
+ <!--that behavior.-->
+ <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
+
+ <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
+ <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
+ <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
+ <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
+ <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
+
+ <parameter name="userName">admin</parameter>
+ <parameter name="password">axis2</parameter>
+
+ <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
+ <!--ServicesDirectory only works on the following cases-->
+ <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
+ <!---When creating URL Based configurator with URL âfile://â -->
+ <!--- War based configurator with expanded case , -->
+
+ <!--All the other scenarios it will be ignored.-->
+ <!--<parameter name="ServicesDirectory">service</parameter>-->
+ <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
+ <!--<parameter name="ModulesDirectory">modules</parameter>-->
+
+
+
+ <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
+ <!--root which can configured using the following contextRoot parameter-->
+ <!--<parameter name="contextRoot">axis2</parameter>-->
+
+ <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
+ <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
+ <!--context path to proper Axis2 servlets-->
+ <!--<parameter name="servicePath">services</parameter>-->
+ <!--<parameter name="restPath">rest</parameter>-->
+
+ <!-- Following parameter will completely disable REST handling in Axis2-->
+ <parameter name="disableREST" locked="true">false</parameter>
+
+ <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
+ <parameter name="disableSOAP12" locked="true">false</parameter>
+
+ <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
+ <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
+ <deployer extension=".jar" directory="servicejars" class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
+
+ <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
+
+
+ <!-- Following parameter will set the host name for the epr-->
+ <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
+
+ <!-- If you have a front end host which exposes this webservice using a different public URL -->
+ <!-- use this parameter to override autodetected url -->
+ <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
+
+
+ <!-- The way of adding listener to the system-->
+ <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
+ <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
+ <!-- </listener>-->
+
+ <threadContextMigrators>
+ <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List" class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>
+ </threadContextMigrators>
+
+ <!-- ================================================= -->
+ <!-- Message Receivers -->
+ <!-- ================================================= -->
+ <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
+ <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
+ <!--any operation -->
+ <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
+ <messageReceivers>
+ <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
+ class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+ <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
+ class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+ <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
+ class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+ <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
+ class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+ </messageReceivers>
+
+ <!-- ================================================= -->
+ <!-- Message Formatter -->
+ <!-- ================================================= -->
+ <!--Following content type to message formatter mapping can be used to implement support for different message -->
+ <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
+ <messageFormatters>
+ <messageFormatter contentType="application/x-www-form-urlencoded"
+ class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
+ <messageFormatter contentType="multipart/form-data"
+ class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
+ <messageFormatter contentType="application/xml"
+ class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
+ <messageFormatter contentType="text/xml"
+ class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+ <messageFormatter contentType="application/soap+xml"
+ class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+ </messageFormatters>
+
+ <!-- ================================================= -->
+ <!-- Message Builders -->
+ <!-- ================================================= -->
+ <!--Following content type to builder mapping can be used to implement support for different message -->
+ <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
+ <messageBuilders>
+ <messageBuilder contentType="application/xml"
+ class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+ <messageBuilder contentType="application/xml"
+ class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+ <messageBuilder contentType="application/x-www-form-urlencoded"
+ class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
+ <messageBuilder contentType="multipart/form-data"
+ class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
+ </messageBuilders>
+
+ <!-- ================================================= -->
+ <!-- Transport Ins -->
+ <!-- ================================================= -->
+ <transportReceiver name="http"
+ class="org.apache.axis2.transport.http.SimpleHTTPServer">
+ <parameter name="port">8080</parameter>
+ <!-- Here is the complete list of supported parameters (see example settings further below):
+ port: the port to listen on (default 6060)
+ hostname: if non-null, url prefix used in reply-to endpoint references (default null)
+ originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
+ requestTimeout: value in millis of time that requests can wait for data (default 20000)
+ requestTcpNoDelay: true to maximize performance and minimize latency (default true)
+ false to minimize bandwidth consumption by combining segments
+ requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
+ requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
+ note that default queue never fills up: see HttpFactory
+ threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
+ note that no such threads can exist with default unbounded request queue
+ threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
+ -->
+ <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
+ <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
+ <!-- <parameter name="requestTimeout">10000</parameter> -->
+ <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
+ <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
+ <!-- <parameter name="requestMaxThreadPoolSize">100</parameter> -->
+ <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
+ <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
+ </transportReceiver>
+
+ <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
+ <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
+ <parameter name="myTopicConnectionFactory">
+ <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+ <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+ <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
+ </parameter>
+
+ <parameter name="myQueueConnectionFactory">
+ <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+ <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+ <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+ </parameter>
+
+ <parameter name="default">
+ <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+ <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
+ <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
+ </parameter>
+ </transportReceiver>-->
+
+ <!-- ================================================= -->
+ <!-- Non-blocking http/s Transport Listener -->
+
+ <!-- the non blocking http transport based on HttpCore + NIO extensions
+ <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
+ <parameter name="port" locked="false">9000</parameter>
+ <parameter name="non-blocking" locked="false">true</parameter>
+ </transportReceiver>-->
+
+ <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
+ <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
+ <parameter name="port" locked="false">9002</parameter>
+ <parameter name="non-blocking" locked="false">true</parameter>
+ <parameter name="keystore" locked="false">
+ <KeyStore>
+ <Location>identity.jks</Location>
+ <Type>JKS</Type>
+ <Password>password</Password>
+ <KeyPassword>password</KeyPassword>
+ </KeyStore>
+ </parameter>
+ <parameter name="truststore" locked="false">
+ <TrustStore>
+ <Location>trust.jks</Location>
+ <Type>JKS</Type>
+ <Password>password</Password>
+ </TrustStore>
+ </parameter>-->
+ <!--<parameter name="SSLVerifyClient">require</parameter>
+ supports optional|require or defaults to none -->
+ <!--</transportReceiver>-->
+
+ <!-- ================================================= -->
+ <!-- Mail Transport Listener -->
+ <!-- This is a sample configuration. It assumes a mail server running in localhost.
+ Listener pops messages that comes to the email address red@localhost. Users
+ password is red. Listener connect to the server every 3000 milliseconds.
+ Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
+ http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
+ -->
+ <!-- ================================================= -->
+ <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
+ <parameter name="mail.pop3.host">localhost</parameter>
+ <parameter name="mail.pop3.user">red</parameter>
+ <parameter name="mail.store.protocol">pop3</parameter>
+ <parameter name="transport.mail.pop3.password">red</parameter>
+ <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
+ <parameter name="transport.listener.interval">3000</parameter>
+ </transportReceiver>-->
+
+ <!--Uncomment if you want to have TCP transport support-->
+ <!--transportReceiver name="tcp"
+ class="org.apache.axis2.transport.tcp.TCPServer">
+ <parameter name="port">6060</parameter-->>
+ <!--If you want to give your own host address for EPR generation-->
+ <!--uncomment the following paramter , and set it as you required.-->
+ <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
+ <!-- /transportReceiver -->
+
+ <!-- ================================================= -->
+ <!-- Transport Outs -->
+ <!-- ================================================= -->
+
+ <transportSender name="tcp"
+ class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+ <transportSender name="local"
+ class="org.apache.axis2.transport.local.LocalTransportSender"/>
+ <transportSender name="http"
+ class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <parameter name="PROTOCOL">HTTP/1.1</parameter>
+ <parameter name="Transfer-Encoding">chunked</parameter>
+
+ <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
+ <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
+ </transportSender>
+
+ <transportSender name="https"
+ class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <parameter name="PROTOCOL">HTTP/1.1</parameter>
+ <parameter name="Transfer-Encoding">chunked</parameter>
+ </transportSender>
+
+ <!-- Please enable this if you need the java transport -->
+ <!-- <transportSender name="java"
+ class="org.apache.axis2.transport.java.JavaTransportSender"/> -->
+
+ <!--<transportSender name="jms"-->
+ <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
+
+ <!-- ================================================= -->
+ <!-- Non-blocking http/s Transport Sender -->
+
+ <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
+ <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
+ <parameter name="non-blocking" locked="false">true</parameter>
+ </transportSender>-->
+
+ <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
+ <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
+ <parameter name="non-blocking" locked="false">true</parameter>
+ <parameter name="keystore" locked="false">
+ <KeyStore>
+ <Location>identity.jks</Location>
+ <Type>JKS</Type>
+ <Password>password</Password>
+ <KeyPassword>password</KeyPassword>
+ </KeyStore>
+ </parameter>
+ <parameter name="truststore" locked="false">
+ <TrustStore>
+ <Location>trust.jks</Location>
+ <Type>JKS</Type>
+ <Password>password</Password>
+ </TrustStore>
+ </parameter>-->
+ <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
+ supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
+ <!--</transportSender>-->
+
+ <!-- ================================================= -->
+ <!-- Mail Transport Sender -->
+ <!--Only need to uncomment the sender. Configuration is achieved with every client.
+ At any instant mail host should be given. Sample configuration has been given.
+ http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
+ -->
+ <!-- ================================================= -->
+ <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
+ <parameter name="mail.smtp.host">localhost</parameter>
+ </transportSender>-->
+
+ <!-- ================================================= -->
+ <!-- Global Modules -->
+ <!-- ================================================= -->
+ <!-- Comment this to disable Addressing -->
+ <module ref="addressing"/>
+
+ <!--Configuring module , providing parameters for modules whether they refer or not-->
+ <!--<moduleConfig name="addressing">-->
+ <!--<parameter name="addressingPara">N/A</parameter>-->
+ <!--</moduleConfig>-->
+
+ <!-- ================================================= -->
+ <!-- Clustering -->
+ <!-- ================================================= -->
+ <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
+ <!--
+ <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
+ <parameter name="param1">value1</parameter>
+ <parameter name="domain">apache.axis2.domain</parameter>
+ <parameter name="synchronizeAll">true</parameter>
+ <parameter name="maxRetries">10</parameter>
+ <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
+ <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
+ </configurationManager>
+ <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
+ <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
+ </contextManager>
+ </cluster>
+ -->
+
+ <!-- ================================================= -->
+ <!-- Phases -->
+ <!-- ================================================= -->
+ <phaseOrder type="InFlow">
+ <!-- System predefined phases -->
+ <phase name="Transport">
+ <handler name="RequestURIBasedDispatcher"
+ class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+ <order phase="Transport"/>
+ </handler>
+ <handler name="SOAPActionBasedDispatcher"
+ class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+ <order phase="Transport"/>
+ </handler>
+ </phase>
+ <phase name="Addressing">
+ <handler name="AddressingBasedDispatcher"
+ class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+ <order phase="Addressing"/>
+ </handler>
+ </phase>
+ <phase name="Security"/>
+ <phase name="PreDispatch"/>
+ <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+ <handler name="RequestURIBasedDispatcher"
+ class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+ <handler name="SOAPActionBasedDispatcher"
+ class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+ <handler name="RequestURIOperationDispatcher"
+ class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+ <handler name="SOAPMessageBodyBasedDispatcher"
+ class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+ <handler name="HTTPLocationBasedDispatcher"
+ class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+ <handler name="GenericProviderDispatcher"
+ class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+ <handler name="MustUnderstandValidationDispatcher"
+ class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+ </phase>
+ <phase name="RMPhase"/>
+ <!-- System predefined phases -->
+ <!-- After Postdispatch phase module author or service author can add any phase he want -->
+ <phase name="OperationInPhase">
+ <handler name="MustUnderstandChecker"
+ class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
+ <order phase="OperationInPhase"/>
+ </handler>
+ </phase>
+ <phase name="soapmonitorPhase"/>
+ </phaseOrder>
+ <phaseOrder type="OutFlow">
+ <!-- user can add his own phases to this area -->
+ <phase name="soapmonitorPhase"/>
+ <phase name="OperationOutPhase"/>
+ <!--system predefined phase-->
+ <!--these phase will run irrespective of the service-->
+ <phase name="RMPhase"/>
+ <phase name="PolicyDetermination"/>
+ <phase name="MessageOut"/>
+ <phase name="Security"/>
+ </phaseOrder>
+ <phaseOrder type="InFaultFlow">
+ <phase name="Addressing">
+ <handler name="AddressingBasedDispatcher"
+ class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+ <order phase="Addressing"/>
+ </handler>
+ </phase>
+ <phase name="Security"/>
+ <phase name="PreDispatch"/>
+ <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+ <handler name="RequestURIBasedDispatcher"
+ class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+ <handler name="SOAPActionBasedDispatcher"
+ class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+ <handler name="RequestURIOperationDispatcher"
+ class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+ <handler name="SOAPMessageBodyBasedDispatcher"
+ class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+ <handler name="HTTPLocationBasedDispatcher"
+ class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+ <handler name="GenericProviderDispatcher"
+ class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+ <handler name="MustUnderstandValidationDispatcher"
+ class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+ </phase>
+ <phase name="RMPhase"/>
+ <!-- user can add his own phases to this area -->
+ <phase name="OperationInFaultPhase"/>
+ <phase name="soapmonitorPhase"/>
+ </phaseOrder>
+ <phaseOrder type="OutFaultFlow">
+ <!-- user can add his own phases to this area -->
+ <phase name="soapmonitorPhase"/>
+ <phase name="OperationOutFaultPhase"/>
+ <phase name="RMPhase"/>
+ <phase name="PolicyDetermination"/>
+ <phase name="MessageOut"/>
+ <phase name="Security"/>
+ </phaseOrder>
+</axisconfig>
+
Modified: webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/AbstractTestCase.java?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/AbstractTestCase.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/AbstractTestCase.java Tue Apr 1 12:13:57 2008
@@ -33,6 +33,26 @@
static {
BasicConfigurator.configure();
}
+
+ /*
+ * users may pass in their own repositoryDir path and path to custom configuration file.
+ * Passing 'null' for either param will use the default
+ */
+ protected static Test getTestSetup(Test test, final String repositoryDir, final String axis2xml) {
+ return new TestSetup(test) {
+ public void setUp() throws Exception {
+ TestLogger.logger.debug("Starting the server for: " +this.getClass().getName());
+ StartServer startServer = new StartServer("server1");
+ startServer.testStartServer(repositoryDir, axis2xml);
+ }
+
+ public void tearDown() throws Exception {
+ TestLogger.logger.debug("Stopping the server for: " +this.getClass().getName());
+ StopServer stopServer = new StopServer("server1");
+ stopServer.testStopServer();
+ }
+ };
+ }
protected static Test getTestSetup(Test test) {
return new TestSetup(test) {
Modified: webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/StartServer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/StartServer.java?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/StartServer.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/framework/StartServer.java Tue Apr 1 12:13:57 2008
@@ -28,6 +28,15 @@
super(name);
}
+ /*
+ * users may pass in their own repositoryDir path and path to custom configuration file.
+ * Passing 'null' for either param will use the default
+ */
+ public void testStartServer(String repositoryDir, String axis2xml) {
+ SimpleServer server = new SimpleServer(repositoryDir, axis2xml);
+ server.start();
+ }
+
public void testStartServer() {
SimpleServer server = new SimpleServer();
server.start();
Modified: webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/RuntimeExceptionsAsyncMepTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/RuntimeExceptionsAsyncMepTest.java?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/RuntimeExceptionsAsyncMepTest.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/RuntimeExceptionsAsyncMepTest.java Tue Apr 1 12:13:57 2008
@@ -26,303 +26,374 @@
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Response;
import javax.xml.ws.WebServiceException;
-import javax.xml.ws.soap.Addressing;
import javax.xml.ws.soap.SOAPFaultException;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.deployment.FileSystemConfigurator;
+import org.apache.axis2.jaxws.ClientConfigurationFactory;
import org.apache.axis2.jaxws.framework.AbstractTestCase;
import org.apache.axis2.jaxws.sample.asyncdoclit.client.AsyncClient;
import org.apache.axis2.jaxws.sample.asyncdoclit.client.AsyncPort;
import org.apache.axis2.jaxws.sample.asyncdoclit.client.AsyncService;
-import org.apache.axis2.jaxws.sample.asyncdoclit.common.CallbackHandler;
import org.apache.axis2.jaxws.sample.asyncdoclit.client.ThrowExceptionFault;
+import org.apache.axis2.jaxws.sample.asyncdoclit.common.CallbackHandler;
+import org.apache.axis2.metadata.registry.MetadataFactoryRegistry;
import org.test.asyncdoclit.ExceptionTypeEnum;
import org.test.asyncdoclit.ThrowExceptionResponse;
/**
* Test for varios async exceptions whern AsyncMEP is enabled
*/
-public class RuntimeExceptionsAsyncMepTest extends AbstractTestCase { //com.ibm.ws.wsfvt.test.framework.FVTTestCase {
-
- private static final String DOCLITWR_ASYNC_ENDPOINT =
- "http://localhost:6060/axis2/services/AsyncService2.DocLitWrappedPortImplPort";
-
- private static final String ASYNC_MEP_PROPERTY = AsyncClient.ASYNC_MEP_PROPERTY;
-
- static final String CONNECT_404_ENDPOINT = DOCLITWR_ASYNC_ENDPOINT //Constants.DOCLITWR_ASYNC_ENDPOINT
- + "/DoesNotExist";
+public class RuntimeExceptionsAsyncMepTest extends AbstractTestCase {
+
+ private static final String DOCLITWR_ASYNC_ENDPOINT = "http://localhost:6060/axis2/services/AsyncService2.DocLitWrappedPortImplPort";
- static final String HOST_NOT_FOUND_ENDPOINT = "http://this.endpoint.does.not.exist/nope";
+ static final String CONNECT_404_ENDPOINT = DOCLITWR_ASYNC_ENDPOINT // Constants.DOCLITWR_ASYNC_ENDPOINT
+ + "/DoesNotExist";
+
+ static final String HOST_NOT_FOUND_ENDPOINT = "http://this.endpoint.does.not.exist/nope";
public static Test suite() {
- return getTestSetup(new TestSuite(RuntimeExceptionsAsyncMepTest.class));
+ Test test = getTestSetup(new TestSuite(
+ RuntimeExceptionsAsyncMepTest.class), null,
+ "test-resources/axis2_addressing.xml");
+ return test;
}
-
+
private AsyncPort getPort() {
- AsyncService service = new AsyncService();
+ AsyncService service = new AsyncService();
AsyncPort port = service.getAsyncPort();
assertNotNull("Port is null", port);
Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
DOCLITWR_ASYNC_ENDPOINT);
-
+
return port;
}
- /**
- * @testStrategy Invoke the proxy with async-polling method, the proxy is
- * configured against an endpoint which does not exist (this
- * is a server not found case). Expected to throw a
- * EE/WSE/UnknownHostException
- */
- public void testAsyncPolling_asyncMEP_UnknwonHost() throws Exception {
-
+ /**
+ * @testStrategy Invoke the proxy with async-polling method, the proxy is
+ * configured against an endpoint which does not exist (this
+ * is a server not found case). Expected to throw a
+ * EE/WSE/UnknownHostException
+ */
+ public void testAsyncPolling_asyncMEP_UnknwonHost() throws Exception {
+
+ AsyncPort port = getPort();
+
+ Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
+ rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
+ HOST_NOT_FOUND_ENDPOINT);
+
+ Response<ThrowExceptionResponse> resp = port
+ .throwExceptionAsync(ExceptionTypeEnum.WSE);
+
+ AsyncClient.waitBlocking(resp);
+ try {
+ resp.get();
+
+ fail("ExecutionException expected at invoke time when an invalid endpoint address is specified");
+ } catch (ExecutionException ee) {
+ // Constants.logStack(ee);
+
+ assertTrue("EE.getCause must be WebServiceException",
+ ee.getCause() instanceof WebServiceException);
+
+ assertTrue("WSE.getCause must be UnknownHostException", checkStack(
+ ee, UnknownHostException.class));
+ }
+ }
+
+ /**
+ * @testStrategy Invoke the proxy with async-polling method, the proxy is
+ * configured against an endpoint which does not exist (this
+ * is a 404-Not Found case). Expected to throw a EE/WSE
+ */
+ public void testAsyncPolling_asyncMEP_404NotFound() throws Exception {
+
+ AsyncPort port = getPort();
+ Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
+ rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, CONNECT_404_ENDPOINT);
+ Response<ThrowExceptionResponse> resp = port
+ .throwExceptionAsync(ExceptionTypeEnum.WSE);
+
+ AsyncClient.waitBlocking(resp);
+ try {
+ resp.get();
+
+ fail("ExecutionException expected at invoke time when an invalid endpoint address is specified");
+ } catch (ExecutionException ee) {
+ // Constants.logStack(ee);
+
+ assertTrue("EE.getCause must be WebServiceException",
+ ee.getCause() instanceof WebServiceException);
+
+ /*
+ * TODO: REVIEW. Original test was written expecting a 404 from the
+ * bad URL set on the requestcontext. However, this test actually
+ * does make it to the endpoint, and returns the exception specified
+ * in the call to port.throwExceptionAsync(ExceptionTypeEnum.WSE)
+ * above...so the assert is commented until we can review it. Also,
+ * different servers may behave differently, depending on how they
+ * want to parse the incoming request URL.
+ */
+ // assertTrue("WSE.getCause must be 404", checkStack(ee,
+ // java.net.ConnectException.class));
+ }
+ }
+
+ /**
+ * @testStrategy Invoke the proxy with async-polling method, the endpoint
+ * will throw a WSE which should result in a
+ * EE/SOAPFaultException
+ */
+ public void testAsyncPolling_asyncMEP_WebServiceException()
+ throws Exception {
+
+ AsyncPort port = getPort();
+ Response<ThrowExceptionResponse> resp = port
+ .throwExceptionAsync(ExceptionTypeEnum.WSE);
+
+ AsyncClient.waitBlocking(resp);
+ try {
+ resp.get();
+ fail("ExecutionException expected at Response.get when ednpoint throws an exception");
+ } catch (ExecutionException ee) {
+ // Constants.logStack(ee);
+
+ assertTrue(
+ "ExecutionException.getCause should be an instance of SOAPFaultException",
+ ee.getCause() instanceof SOAPFaultException);
+ }
+ }
+
+ /**
+ * @testStrategy Invoke the proxy with async-polling method, the endpoint
+ * will throw a wsdl:fault which should result in a
+ * EE/SimpleFault
+ */
+ public void testAsyncPolling_asyncMEP_WsdlFault() throws Exception {
+
+ AsyncPort port = getPort();
+ Response<ThrowExceptionResponse> resp = port
+ .throwExceptionAsync(ExceptionTypeEnum.WSDL_FAULT);
+
+ AsyncClient.waitBlocking(resp);
+ try {
+ resp.get();
+ fail("ExecutionException expected at Response.get when ednpoint throws an exception");
+ } catch (ExecutionException ee) {
+ // Constants.logStack(ee);
+
+ assertTrue(
+ "ExecutionException.getCause should be an instance of SimpleFault",
+ ee.getCause() instanceof ThrowExceptionFault);
+ }
+ }
+
+ /** ******************** Async Callback ******************* */
+
+ /**
+ * @testStrategy Invoke the proxy with async-callback method, the proxy is
+ * configured against an endpoint which does not exist (this
+ * is a server not found case). Expected to throw a
+ * EE/WSE/UnknownHostException
+ */
+ public void testAsyncCallback_asyncMEP_UnknownHost() throws Exception {
+
+ AsyncPort port = getPort();
+ Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
+ rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
+ HOST_NOT_FOUND_ENDPOINT);
+
+ CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
+ Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE,
+ handler);
+
+ AsyncClient.waitBlocking(resp);
+ try {
+ handler.get();
+
+ fail("ExecutionException expected at invoke time when an invalid endpoint address is specified");
+ } catch (ExecutionException ee) {
+ // Constants.logStack(ee);
+
+ assertTrue(
+ "ExecutionException.getCause should be an instance of WebServiceException",
+ ee.getCause() instanceof WebServiceException);
+
+ assertTrue("WSE.getCause must be UnknownHostException", checkStack(
+ ee, UnknownHostException.class));
+
+ }
+ }
+
+ /**
+ * @testStrategy Invoke the proxy with async-callback method, the proxy is
+ * configured against an endpoint which does not exist (this
+ * is a 404 Not Found case). Expected to throw a
+ * EE/WSE/UnknownHostException
+ */
+ public void testAsyncCallback_asyncMEP_404NotFound() throws Exception {
+
AsyncPort port = getPort();
-
- Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
- rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
- HOST_NOT_FOUND_ENDPOINT);
-
- Response<ThrowExceptionResponse> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE);
-
- AsyncClient.waitBlocking(resp);
- try {
- resp.get();
-
- fail("ExecutionException expected at invoke time when an invalid endpoint address is specified");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue("EE.getCause must be WebServiceException", ee.getCause() instanceof WebServiceException);
-
- assertTrue("WSE.getCause must be UnknownHostException", checkStack(ee, UnknownHostException.class));
- }
- }
-
- /**
- * @testStrategy Invoke the proxy with async-polling method, the proxy is
- * configured against an endpoint which does not exist (this
- * is a 404-Not Found case). Expected to throw a EE/WSE
- */
- public void testAsyncPolling_asyncMEP_404NotFound() throws Exception {
-
- AsyncPort port = getPort();
- Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
- rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, CONNECT_404_ENDPOINT);
- Response<ThrowExceptionResponse> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE);
-
- AsyncClient.waitBlocking(resp);
- try {
- resp.get();
-
- fail("ExecutionException expected at invoke time when an invalid endpoint address is specified");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue("EE.getCause must be WebServiceException",
- ee.getCause() instanceof WebServiceException);
-
- /*
- * TODO: REVIEW. Original test was written expecting a 404 from the bad URL set on the requestcontext.
- * However, this test actually does make it to the endpoint, and returns the exception specified in
- * the call to port.throwExceptionAsync(ExceptionTypeEnum.WSE) above...so the assert is commented until
- * we can review it. Also, different servers may behave differently, depending on how they want to
- * parse the incoming request URL.
- */
- //assertTrue("WSE.getCause must be 404", checkStack(ee, java.net.ConnectException.class));
- }
- }
-
- /**
- * @testStrategy Invoke the proxy with async-polling method, the endpoint
- * will throw a WSE which should result in a
- * EE/SOAPFaultException
- */
- public void testAsyncPolling_asyncMEP_WebServiceException() throws Exception {
-
- AsyncPort port = getPort();
- Response<ThrowExceptionResponse> resp = port
- .throwExceptionAsync(ExceptionTypeEnum.WSE);
-
- AsyncClient.waitBlocking(resp);
- try {
- resp.get();
- fail("ExecutionException expected at Response.get when ednpoint throws an exception");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue(
- "ExecutionException.getCause should be an instance of SOAPFaultException",
- ee.getCause() instanceof SOAPFaultException);
- }
- }
-
- /**
- * @testStrategy Invoke the proxy with async-polling method, the endpoint
- * will throw a wsdl:fault which should result in a
- * EE/SimpleFault
- */
- public void testAsyncPolling_asyncMEP_WsdlFault() throws Exception{
-
- AsyncPort port = getPort();
- Response<ThrowExceptionResponse> resp = port
- .throwExceptionAsync(ExceptionTypeEnum.WSDL_FAULT);
-
- AsyncClient.waitBlocking(resp);
- try {
- resp.get();
- fail("ExecutionException expected at Response.get when ednpoint throws an exception");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue(
- "ExecutionException.getCause should be an instance of SimpleFault",
- ee.getCause() instanceof ThrowExceptionFault);
- }
- }
-
- /** ******************** Async Callback ******************* */
-
- /**
- * @testStrategy Invoke the proxy with async-callback method, the proxy is
- * configured against an endpoint which does not exist (this
- * is a server not found case). Expected to throw a
- * EE/WSE/UnknownHostException
- */
- public void testAsyncCallback_asyncMEP_UnknownHost() throws Exception {
-
- AsyncPort port = getPort();
- Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
- rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
- HOST_NOT_FOUND_ENDPOINT);
-
- CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
- Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE, handler);
-
- AsyncClient.waitBlocking(resp);
- try {
- handler.get();
-
- fail("ExecutionException expected at invoke time when an invalid endpoint address is specified");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue(
- "ExecutionException.getCause should be an instance of WebServiceException",
- ee.getCause() instanceof WebServiceException);
-
- assertTrue("WSE.getCause must be UnknownHostException", checkStack(ee, UnknownHostException.class));
-
- }
- }
-
- /**
- * @testStrategy Invoke the proxy with async-callback method, the proxy is
- * configured against an endpoint which does not exist (this
- * is a 404 Not Found case). Expected to throw a
- * EE/WSE/UnknownHostException
- */
- public void testAsyncCallback_asyncMEP_404NotFound() throws Exception {
-
- AsyncPort port = getPort();
- Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
- rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, CONNECT_404_ENDPOINT);
-
- CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
- Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE, handler);
-
- AsyncClient.waitBlocking(resp);
- try {
- handler.get();
-
- fail("ExecutionException expected at Response.get when ednpoint throws an exception");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue(
- "ExecutionException.getCause should be an instance of WebServiceException",
- ee.getCause() instanceof WebServiceException);
-
- /*
- * TODO: REVIEW. Original test was written expecting a 404 from the bad URL set on the requestcontext.
- * However, this test actually does make it to the endpoint, and returns the exception specified in
- * the call to port.throwExceptionAsync(ExceptionTypeEnum.WSE) above...so the assert is commented until
- * we can review it. Also, different servers may behave differently, depending on how they want to
- * parse the incoming request URL.
- */
- //assertTrue("WSE.getCause should be an instance of ConnectException", checkStack(ee, java.nio.channels.UnresolvedAddressException.class));
- }
- }
-
- /**
- * @testStrategy Invoke the proxy with async-callback method, the proxy
- * throws a generic WebServiceException
- */
- public void testAsyncCallback_asyncMEP_WebServiceException() throws Exception {
-
- AsyncPort port = getPort();
-
- Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
+ Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
+ rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, CONNECT_404_ENDPOINT);
+
+ CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
+ Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE,
+ handler);
+
+ AsyncClient.waitBlocking(resp);
+ try {
+ handler.get();
+
+ fail("ExecutionException expected at Response.get when ednpoint throws an exception");
+ } catch (ExecutionException ee) {
+ // Constants.logStack(ee);
+
+ assertTrue(
+ "ExecutionException.getCause should be an instance of WebServiceException",
+ ee.getCause() instanceof WebServiceException);
+
+ /*
+ * TODO: REVIEW. Original test was written expecting a 404 from the
+ * bad URL set on the requestcontext. However, this test actually
+ * does make it to the endpoint, and returns the exception specified
+ * in the call to port.throwExceptionAsync(ExceptionTypeEnum.WSE)
+ * above...so the assert is commented until we can review it. Also,
+ * different servers may behave differently, depending on how they
+ * want to parse the incoming request URL.
+ */
+ // assertTrue("WSE.getCause should be an instance of
+ // ConnectException", checkStack(ee,
+ // java.nio.channels.UnresolvedAddressException.class));
+ }
+ }
+
+ /**
+ * @testStrategy Invoke the proxy with async-callback method, the proxy
+ * throws a generic WebServiceException. I think we may have
+ * the record for longest method name in Apache here.
+ */
+ public void testAsyncCallback_asyncMEP_WebServiceException()
+ throws Exception {
+
+ AsyncPort port = getPort();
+
+ Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
DOCLITWR_ASYNC_ENDPOINT);
rc.put(AddressingConstants.WSA_REPLY_TO, "blarg");
-
- CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
- Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE, handler);
-
- AsyncClient.waitBlocking(resp);
- try {
- handler.get();
-
- fail("ExecutionException expected at Response.get when ednpoint throws an exception");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue(
- "ExecutionException.getCause should be an instance of WebServiceException",
- ee.getCause() instanceof SOAPFaultException);
- }
- }
-
- /**
- * @testStrategy Invoke the proxy with async-callback method, the endpoint
- * will throw a wsdl:fault which should result in a
- * EE/SimpleFault
- */
- public void testAsyncCallback_asyncMEP_WsdlFault() throws Exception{
-
- AsyncPort port = getPort();
- CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
- Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSDL_FAULT, handler);
-
- AsyncClient.waitBlocking(resp);
-
- try {
- handler.get();
-
- fail("ExecutionException expected at Response.get when ednpoint throws an exception");
- } catch (ExecutionException ee) {
- //Constants.logStack(ee);
-
- assertTrue(
- "ExecutionException.getCause should be an instance of SimpleFault",
- ee.getCause() instanceof ThrowExceptionFault);
- }
- }
-
- private static boolean checkStack(Throwable t, Class find){
- Throwable cur = t;
- boolean found = false;
- do {
- found = cur.getClass().isAssignableFrom(find);
- cur = cur.getCause();
- } while (!found && cur != null);
-
- return found;
- }
+
+ CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
+ Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE,
+ handler);
+
+ AsyncClient.waitBlocking(resp);
+ Exception e = null;
+ try {
+ handler.get();
+
+ fail("ExecutionException expected at Response.get when ednpoint throws an exception");
+ } catch (ExecutionException ee) {
+ e = ee;
+ }
+ assertNotNull(e);
+ assertTrue(
+ "ExecutionException.getCause should be an instance of WebServiceException",
+ e.getCause() instanceof SOAPFaultException);
+ }
+
+ /**
+ * @testStrategy Invoke the proxy with async-callback method, the proxy
+ * throws a generic WebServiceException. I think we may have
+ * the record for longest method name in Apache here.
+ */
+ public void testAsyncCallback_asyncMEP_asyncWire_Addressing_WebServiceException()
+ throws Exception {
+
+ // we want to use addressing on the client side
+ String repopath = System.getProperty("basedir", ".") + "/"
+ + System.getProperty("build.repository");
+ String axis2xmlpath = System.getProperty("basedir", ".")
+ + "/test-resources/axis2_addressing.xml";
+ FileSystemConfigurator configurator = new FileSystemConfigurator(
+ repopath, axis2xmlpath);
+ ClientConfigurationFactory factory = new ClientConfigurationFactory(
+ configurator);
+ MetadataFactoryRegistry.setFactory(ClientConfigurationFactory.class,
+ factory);
+
+ AsyncPort port = getPort();
+
+ Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
+ rc.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
+ DOCLITWR_ASYNC_ENDPOINT);
+ //rc.put(AddressingConstants.WSA_REPLY_TO, AddressingConstants.Final.WSA_ANONYMOUS_URL);
+ rc.put("org.apache.axis2.jaxws.use.async.mep", Boolean.TRUE);
+
+ CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
+ Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSE,
+ handler);
+
+ AsyncClient.waitBlocking(resp);
+ Exception e = null;
+ try {
+ handler.get();
+
+ fail("ExecutionException expected at Response.get when ednpoint throws an exception");
+ } catch (ExecutionException ee) {
+ e = ee;
+ }
+
+ assertNotNull(e);
+ assertTrue(
+ "ExecutionException.getCause should be an instance of WebServiceException",
+ e.getCause() instanceof SOAPFaultException);
+ }
+
+ /**
+ * @testStrategy Invoke the proxy with async-callback method, the endpoint
+ * will throw a wsdl:fault which should result in a
+ * EE/SimpleFault
+ */
+ public void testAsyncCallback_asyncMEP_WsdlFault() throws Exception {
+
+ AsyncPort port = getPort();
+ CallbackHandler<ThrowExceptionResponse> handler = new CallbackHandler<ThrowExceptionResponse>();
+ Future<?> resp = port.throwExceptionAsync(ExceptionTypeEnum.WSDL_FAULT,
+ handler);
+
+ AsyncClient.waitBlocking(resp);
+
+ try {
+ handler.get();
+
+ fail("ExecutionException expected at Response.get when ednpoint throws an exception");
+ } catch (ExecutionException ee) {
+ //Constants.logStack(ee);
+
+ assertTrue(
+ "ExecutionException.getCause should be an instance of SimpleFault",
+ ee.getCause() instanceof ThrowExceptionFault);
+ }
+ }
+
+ private static boolean checkStack(Throwable t, Class find) {
+ Throwable cur = t;
+ boolean found = false;
+ do {
+ found = cur.getClass().isAssignableFrom(find);
+ cur = cur.getCause();
+ } while (!found && cur != null);
+
+ return found;
+ }
+
}
Modified: webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncClient.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncClient.java?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncClient.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/sample/asyncdoclit/client/AsyncClient.java Tue Apr 1 12:13:57 2008
@@ -30,9 +30,7 @@
private static final String DOCLITWR_ASYNC_ENDPOINT =
"http://localhost:6060/axis2/services/AsyncService2.DocLitWrappedPortImplPort";
- public static final String ASYNC_MEP_PROPERTY = "com.ibm.websphere.webservices.use.async.mep";
-
- private static final int max_isasleep_check = 20000;
+ private static final int max_isasleep_check = 30;
/**
* Auxiliary method used for doiing isAsleep checks. Will perform isAsleep
Modified: webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws-integration/test/org/apache/axis2/jaxws/utility/SimpleServer.java Tue Apr 1 12:13:57 2008
@@ -31,17 +31,29 @@
public class SimpleServer {
private static SimpleHTTPServer server;
- private String repositoryDir;
+ private String repositoryDir = System.getProperty("basedir",".")+"/"+System.getProperty("build.repository");
+ private String axis2xml = System.getProperty("axis2.config");
private int port = 6060;
+
+ public SimpleServer() {}
+
+ /*
+ * users may pass in their own repositoryDir path and path to custom configuration file.
+ * Passing 'null' for either param will use the default
+ */
+ public SimpleServer(String repositoryDir, String axis2xml) {
+ if (repositoryDir != null) {
+ this.repositoryDir = repositoryDir;
+ }
+ if (axis2xml != null) {
+ this.axis2xml = axis2xml;
+ }
+ }
public void init() {
- repositoryDir = System.getProperty("basedir",".")+"/"+System.getProperty("build.repository");
-// repositoryDir = "target/test-classes";
TestLogger.logger.debug(">> repositoryDir = " + repositoryDir);
-
- String axis2xml = System.getProperty("axis2.config");
TestLogger.logger.debug(">> axis2.xml = " + axis2xml);
-
+
try {
ConfigurationContext config = ConfigurationContextFactory.createConfigurationContextFromFileSystem(
repositoryDir, axis2xml);
Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/InvocationHelper.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/InvocationHelper.java?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/InvocationHelper.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/InvocationHelper.java Tue Apr 1 12:13:57 2008
@@ -106,9 +106,7 @@
* so it will return this exception. Otherwise, null is returned.
*/
public static Throwable determineMappedException(Throwable t, MessageContext context) {
- Throwable returnThrowable = null;
- EndpointInvocationContext eic = new EndpointInvocationContextImpl();
- eic.setRequestMessageContext(context);
+ EndpointInvocationContext eic = (EndpointInvocationContext)context.getInvocationContext();
eic.setInvocationListeners((List<InvocationListener>)context.getProperty(org.apache.axis2.jaxws.spi.Constants.INVOCATION_LISTENER_LIST));
return determineMappedException(t, eic);
}
Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/server/JAXWSServerTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/server/JAXWSServerTests.java?rev=643524&r1=643523&r2=643524&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/server/JAXWSServerTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/server/JAXWSServerTests.java Tue Apr 1 12:13:57 2008
@@ -164,6 +164,7 @@
// test the signature of determineMappedException that takes a MessageContext
controller = new EndpointController();
request = new MessageContext();
+ eic.setRequestMessageContext(request);
List<InvocationListener> invocationListeners = new ArrayList<InvocationListener>();
invocationListeners.add(new TestInvocationListener());
request.setProperty(org.apache.axis2.jaxws.spi.Constants.INVOCATION_LISTENER_LIST,
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org