You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ch...@apache.org on 2006/03/02 04:25:44 UTC
svn commit: r382270 - in /webservices/axis2/trunk/java/modules:
addressing/src/META-INF/ addressing/src/org/apache/axis2/handlers/addressing/
core/src/org/apache/axis2/addressing/ core/src/org/apache/axis2/engine/
core/src/org/apache/axis2/transport/ht...
Author: chinthaka
Date: Wed Mar 1 19:25:43 2006
New Revision: 382270
URL: http://svn.apache.org/viewcvs?rev=382270&view=rev
Log:
- fixing test cases
- adding addressing in to out fault flow
- adding fromOM to EPR
- making To to be faultTo in a fault case
Modified:
webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml
webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java
Modified: webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/META-INF/module.xml Wed Mar 1 19:25:43 2006
@@ -15,4 +15,10 @@
<order phase="MessageOut"/>
</handler>
</outflow>
+
+ <Outfaultflow>
+ <handler name="AddressingOutHandler" class="org.apache.axis2.handlers.addressing.AddressingOutHandler">
+ <order phase="MessageOut"/>
+ </handler>
+ </Outfaultflow>
</module>
Modified: webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java (original)
+++ webservices/axis2/trunk/java/modules/addressing/src/org/apache/axis2/handlers/addressing/AddressingOutHandler.java Wed Mar 1 19:25:43 2006
@@ -48,6 +48,7 @@
protected OMNamespace addressingNamespaceObject;
+ private MessageContext msgCtxt;
public void invoke(MessageContext msgContext) throws AxisFault {
@@ -58,7 +59,7 @@
log.info("Addressing is disbaled .....");
return;
}
-
+ this.msgCtxt = msgContext;
Object addressingVersionFromCurrentMsgCtxt = msgContext.getProperty(WS_ADDRESSING_VERSION);
if (addressingVersionFromCurrentMsgCtxt != null) {
@@ -221,16 +222,31 @@
}
}
- private void processToEPR(Options messageContextOptions, SOAPEnvelope envelope) {
+ private void processToEPR(Options messageContextOptions, SOAPEnvelope envelope) throws AxisFault {
EndpointReference epr = messageContextOptions.getTo();
if (epr != null && !isAddressingHeaderAlreadyAvailable(WSA_TO, envelope, addressingNamespaceObject))
{
- String address = epr.getAddress();
+ Map referenceParameters = null;
+ String address = "";
+// System.out.println("envelope = " + envelope);
+// if (envelope.getBody().hasFault()) {
+// MessageContext inMsgCtxt = msgCtxt.getOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
+// if (inMsgCtxt != null && inMsgCtxt.getFaultTo() != null && inMsgCtxt.getFaultTo().getAddress() != null)
+// {
+// EndpointReference faultTo = inMsgCtxt.getFaultTo();
+// address = faultTo.getAddress();
+// referenceParameters = faultTo.getAllReferenceParameters();
+// }
+// } else {
+ address = epr.getAddress();
+ referenceParameters = epr.getAllReferenceParameters();
+// }
+
if (!"".equals(address) && address != null) {
SOAPHeaderBlock toHeaderBlock = envelope.getHeader().addHeaderBlock(WSA_TO, addressingNamespaceObject);
toHeaderBlock.setText(address);
}
- processReferenceInformation(epr.getAllReferenceParameters(), envelope.getHeader());
+ processReferenceInformation(referenceParameters, envelope.getHeader());
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/addressing/EndpointReference.java Wed Mar 1 19:25:43 2006
@@ -24,6 +24,7 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
/**
@@ -45,7 +46,7 @@
* </EndpointReference>
*/
-
+ private String name;
private String address;
private OMElement metaData;
private Map referenceParameters;
@@ -130,6 +131,14 @@
this.metaData = metaData;
}
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
/**
* Set a Map with QName as the key and an OMElement
* as the value
@@ -138,6 +147,21 @@
*/
public void setReferenceParameters(Map referenceParameters) {
this.referenceParameters = referenceParameters;
+ }
+
+ public void fromOM(OMElement eprOMElement) {
+ setAddress(eprOMElement.getFirstChildWithName(new QName("Address")).getText());
+ Iterator refParams = eprOMElement.getChildrenWithName(new QName("ReferenceParameters"));
+ while (refParams.hasNext()) {
+ OMElement omElement = (OMElement) refParams.next();
+ addReferenceParameter(omElement);
+ }
+ setMetaData(eprOMElement.getFirstChildWithName(new QName("MetaData")));
+ setName(eprOMElement.getLocalName());
+ }
+
+ public void toOM() {
+ throw new UnsupportedOperationException("Yet to be implemented !!");
}
}
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/engine/AxisEngine.java Wed Mar 1 19:25:43 2006
@@ -31,6 +31,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ws.commons.om.OMAbstractFactory;
+import org.apache.ws.commons.om.OMElement;
import org.apache.ws.commons.soap.SOAP11Constants;
import org.apache.ws.commons.soap.SOAP12Constants;
import org.apache.ws.commons.soap.SOAPEnvelope;
@@ -41,6 +42,7 @@
import org.apache.ws.commons.soap.SOAPHeaderBlock;
import org.apache.ws.commons.soap.SOAPProcessingException;
+import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Iterator;
@@ -142,7 +144,8 @@
faultContext.setTransportOut(processingContext.getTransportOut());
// register the fault message context
- if (processingContext.getAxisOperation() != null && processingContext.getOperationContext() != null){
+ if (processingContext.getAxisOperation() != null && processingContext.getOperationContext() != null)
+ {
processingContext.getAxisOperation().addFaultMessageContext(faultContext, processingContext.getOperationContext());
}
@@ -156,7 +159,14 @@
EndpointReference faultTo = processingContext.getFaultTo();
if (faultTo != null) {
- faultContext.setFaultTo(processingContext.getFaultTo());
+ faultContext.setTo(processingContext.getFaultTo());
+ } else
+ if (processingContext.getEnvelope().getHeader() != null && processingContext.getEnvelope().getHeader().getFirstChildWithName(new QName("FaultTo")) != null)
+ {
+ OMElement faultToElement = processingContext.getEnvelope().getHeader().getFirstChildWithName(new QName("FaultTo"));
+ faultTo = new EndpointReference("");
+ faultTo.fromOM(faultToElement);
+ faultContext.setTo(faultTo);
}
if (faultTo == null || AddressingConstants.Final.WSA_ANONYMOUS_URL.equals(faultTo.getAddress())
@@ -488,6 +498,10 @@
// TODO: Make this clearer - should we have transport senders and messagereceivers as Handlers?
if (!msgContext.isPaused()) {
+
+// msgContext.setExecutionChain((ArrayList) msgContext.getConfigurationContext().getAxisConfiguration().getOutFaultFlow().clone());
+// msgContext.setFLOW(MessageContext.OUT_FLOW);
+// invoke(msgContext);
// Actually send the SOAP Fault
TransportSender sender = msgContext.getTransportOut().getSender();
Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/AxisServlet.java Wed Mar 1 19:25:43 2006
@@ -201,10 +201,10 @@
config.getServletContext().setAttribute(CONFIGURATION_CONTEXT, configContext);
ListenerManager listenerManager = new ListenerManager();
listenerManager.init(configContext);
- TransportInDescription trsindes = new TransportInDescription(
+ TransportInDescription transportInDescription = new TransportInDescription(
new QName(Constants.TRANSPORT_HTTP));
- trsindes.setReceiver(this);
- listenerManager.addListener(trsindes, true);
+ transportInDescription.setReceiver(this);
+ listenerManager.addListener(transportInDescription, true);
} catch (Exception e) {
throw new ServletException(e);
}
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/EchoRawXMLTest.java Wed Mar 1 19:25:43 2006
@@ -39,6 +39,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ws.commons.om.OMElement;
+import org.apache.ws.commons.soap.SOAP12Constants;
import javax.xml.namespace.QName;
@@ -122,6 +123,7 @@
OMElement payload = TestingUtils.createDummyOMElement();
Options options = new Options();
options.setTo(targetEPR);
+ options.setSoapVersionURI(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI);
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
ConfigurationContext configContext =
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/FaultHandlingTest.java Wed Mar 1 19:25:43 2006
@@ -36,9 +36,12 @@
import org.apache.ws.commons.soap.SOAPEnvelope;
import org.apache.ws.commons.soap.SOAPFactory;
import org.apache.ws.commons.soap.SOAPFault;
+import org.apache.ws.commons.soap.impl.llom.builder.StAXSOAPModelBuilder;
import org.apache.wsdl.WSDLConstants;
+import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
+import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.ArrayList;
@@ -108,16 +111,39 @@
assertEquals(fault.getCode().getValue().getText().trim(), SOAP11Constants.FAULT_CODE_SENDER);
}
+ public void testRefParamsWithFaultTo() throws AxisFault, XMLStreamException {
+ SOAPEnvelope soapEnvelope = getSOAPEnvelopeWithRefParamsInFaultTo();
+ SOAPEnvelope resposeEnvelope = getResponse(soapEnvelope);
+
+ System.out.println("resposeEnvelope = " + resposeEnvelope);
+ }
+
+ private SOAPEnvelope getSOAPEnvelopeWithRefParamsInFaultTo() throws XMLStreamException {
+ String soap = "<env:Envelope xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:wsa=\"http://www.w3.org/2005/08/addressing\"> \n" +
+ " <env:Header> \n" +
+ " <wsa:Action>http://example.org/action/echoIn</wsa:Action> \n" +
+ " <wsa:To>http://www-lk.wso2.com:9762/axis2/services/wsaTestService/</wsa:To> \n" +
+ " <wsa:MessageID>urn:uuid:BAB79B77-E9AE-4B9F-A8B4-624BB9E7E919</wsa:MessageID> \n" +
+ " <wsa:ReplyTo> \n" +
+ " <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> \n" +
+ " <wsa:ReferenceParameters xmlns:customer=\"http://example.org/customer\"> \n" +
+ " <customer:CustomerKey>Key#123456789</customer:CustomerKey> \n" +
+ " </wsa:ReferenceParameters> \n" +
+ " </wsa:ReplyTo> \n" +
+ " <wsa:FaultTo> \n" +
+ " <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> \n" +
+ " <wsa:ReferenceParameters xmlns:customer=\"http://example.org/customer\"> \n" +
+ " <customer:CustomerKey>Fault#123456789</customer:CustomerKey> \n" +
+ " </wsa:ReferenceParameters> \n" +
+ " </wsa:FaultTo> \n" +
+ " </env:Header> \n" +
+ " <env:Body> \n" +
+ " <m:echoIn xmlns:m=\"http://example.org/echo\" /> \n" +
+ " </env:Body>\n" +
+ " </env:Envelope>";
+ return (SOAPEnvelope) new StAXSOAPModelBuilder(XMLInputFactory.newInstance().createXMLStreamReader(new ByteArrayInputStream(soap.getBytes())), SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI).getDocumentElement();
+ }
-// public void testSOAPFaultSerializing(){
-// try {
-// SOAPEnvelope envelope = createEnvelope("soap/fault/test.xml");
-// SOAPEnvelope response = getResponse(envelope);
-// printElement(response);
-// assertTrue(true);
-// } catch (Exception e) {
-// }
-// }
private void checkSOAPFaultContent(SOAPEnvelope soapEnvelope) {
assertTrue(soapEnvelope.getBody().hasFault());
Modified: webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java?rev=382270&r1=382269&r2=382270&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java (original)
+++ webservices/axis2/trunk/java/modules/integration/test/org/apache/axis2/engine/util/TestConstants.java Wed Mar 1 19:25:43 2006
@@ -27,6 +27,7 @@
public interface TestConstants {
public static final EndpointReference targetEPR = new EndpointReference(
"http://127.0.0.1:" + (UtilServer.TESTING_PORT)
+// "http://127.0.0.1:" + 5556
+ "/axis2/services/EchoXMLService/echoOMElement");
public static final QName serviceName = new QName("EchoXMLService");