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 Doug Davis <du...@us.ibm.com> on 2006/02/09 03:26:37 UTC

ant clean all-tests should work

everything appears to work in the trunk now  - could someone else try it 
to make sure I'm not getting a false positive?
thanks,
-Doug




dug@apache.org 
02/08/2006 09:04 PM

To
axis-cvs@ws.apache.org
cc

Subject
svn commit: r376147 - 
/webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java






Author: dug
Date: Wed Feb  8 18:04:10 2006
New Revision: 376147

URL: http://svn.apache.org/viewcvs?rev=376147&view=rev
Log:
Revert AxisServer back to 01/23 version for now

Modified:
    webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java

Modified: 
webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java?rev=376147&r1=376146&r2=376147&view=diff

==============================================================================
--- webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java 
(original)
+++ webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java 
Wed Feb  8 18:04:10 2006
@@ -1,12 +1,12 @@
 /*
  * Copyright 2001-2004 The Apache Software Foundation.
- *
+ * 
  * Licensed 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.
@@ -25,25 +25,19 @@
 import org.apache.axis.Message;
 import org.apache.axis.MessageContext;
 import org.apache.axis.SimpleTargetedChain;
+import org.apache.axis.message.SOAPEnvelope;
 import org.apache.axis.soap.SOAPConstants;
 import org.apache.axis.client.AxisClient;
 import org.apache.axis.components.logger.LogFactory;
 import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
-import org.apache.axis.message.SOAPEnvelope;
 import org.apache.axis.utils.ClassUtils;
 import org.apache.axis.utils.Messages;
 import org.apache.commons.logging.Log;
-import org.apache.axis.message.SOAPEnvelope;
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.axis.message.SOAPHeaderElement;
-import org.apache.axis.wsa.MIHeader;
-import org.apache.axis.wsa.WSAHandler;
 
 import java.util.Map;
-import java.lang.reflect.Method ;
-
 /**
  *
+ * @author Doug Davis (dug@us.ibm.com)
  * @author Glen Daniels (gdaniels@allaire.com)
  */
 public class AxisServer extends AxisEngine
@@ -54,8 +48,7 @@
         LogFactory.getLog("org.apache.axis.TIME");
 
     private static AxisServerFactory factory = null;
-    private long   t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
-
+ 
     public static AxisServer getServer(Map environment) throws AxisFault
     {
         if (factory == null) {
@@ -131,154 +124,13 @@
         return clientEngine;
     }
 
-    public void invokeInboundTransport(MessageContext msgContext) 
-      throws Exception
-    {
-      /* Process the Transport Specific Request Chain */
-      /**********************************************/
-      String              hName          = msgContext.getTransportName();
-      Handler             h              = null ;
-      SimpleTargetedChain transportChain = null ;
-
-      if (log.isDebugEnabled()) {
- log.debug(Messages.getMessage("transport01","AxisServer.invoke",hName));
-        t1=System.currentTimeMillis();
-      }
- 
-      if ( hName != null && (h = getTransport( hName )) != null ) {
-        if (h instanceof SimpleTargetedChain) {
-          transportChain = (SimpleTargetedChain)h;
-          h = transportChain.getRequestHandler();
-          if (h != null)
-            h.invoke(msgContext);
-        }
-      }
-      // Run security
-      // Add call to securityCode.Verify();  // dug
-    }
-
-    public void invokeOutboundTransport(MessageContext msgContext)
-      throws Exception
-    {
-      String              hName          = msgContext.getTransportName();
-      Handler             h              = null ;
-      SimpleTargetedChain transportChain = null ;
-
-      // Run security
-      // Add call to securityCode.protect(); // dug
-
-      /* Process the Transport Specific Response Chain */
-      /***********************************************/
-      if ( hName != null && (h = getTransport( hName )) != null ) {
-        if (h instanceof SimpleTargetedChain) {
-          transportChain = (SimpleTargetedChain)h;
-          h = transportChain.getResponseHandler();
-          if (h != null) {
-            // add call to RM code to add piggy-backed headers
-            // RMCode.addRMHeaders(); // Dug
-            h.invoke(msgContext);
-          }
-        }
-      }
-    }
-
-    public void invokeService(MessageContext msgContext) throws Exception 
{
-      Handler h = null ;
-
-      if ( tlog.isDebugEnabled() ) 
-        t2=System.currentTimeMillis();
-
-      try {
-        // Run WSA logic
-        WSAHandler.invoke( msgContext );
-
-        MIHeader mih = MIHeader.fromCurrentMessage();
-
-        if ( mih != null ) {
-          // See if it needs to be rerouted
-          // Dug - not yet // (new WSXHandler()).invoke( msgContext );
-        }
-
-        /* Process the Global Request Chain */
-        /**********************************/
-        if ((h = getGlobalRequest()) != null ) {
-          h.invoke(msgContext);
-        }
- 
-        /**
-         * At this point, the service should have been set by someone
-         * (either the originator of the MessageContext, or one of the
-         * transport or global Handlers).  If it hasn't been set, we
-         * fault.
-         */
-        h = msgContext.getService();
-        if (h == null) {
-          // It's possible that we haven't yet parsed the
-          // message at this point.  This is a kludge to
-          // make sure we have.  There probably wants to be
-          // some kind of declarative "parse point" on the handler
-          // chain instead....
-          Message rm = msgContext.getRequestMessage();
-          rm.getSOAPEnvelope().getFirstBody();
- 
-          h = msgContext.getService();
-          if (h == null)
-            throw new AxisFault("Server.NoService",
-                                Messages.getMessage("noService05",
-                                "" + msgContext.getTargetService()),
-                                null, null );
-        }
-        if ( tlog.isDebugEnabled() ) 
-          t3=System.currentTimeMillis();
- 
-        SOAPEnvelope env = 
msgContext.getRequestMessage().getSOAPEnvelope();
- 
-        // Only invoke the service is there's a body - sort of a hack
-        if ( env.getFirstBody() != null ) {
-          initSOAPConstants(msgContext);
-          h.invoke(msgContext);
-        }
-
-        // WSA logic is run first
-        WSAHandler.invoke( msgContext );
-
-        if ( tlog.isDebugEnabled() ) 
-          t4=System.currentTimeMillis();
- 
-        /* Process the Global Response Chain */
-        /***********************************/
-        if ((h = getGlobalResponse()) != null)
-          h.invoke(msgContext);
-      }
-      catch(Exception exp) {
-        // If WSA isn't turned on then just rethrow it
-        // Dug - fix this, it should not do this we need to make this
-        // work even when WSA is turned on
-        if ( MIHeader.fromRequest() == null ) throw exp ;
-
-        if ( !(exp instanceof AxisFault) )
-          exp = AxisFault.makeFault( exp );
-
-        msgContext.setPastPivot( true );
-        msgContext.setResponseMessage( new Message(exp) );
-
-        // WSA stuff
-        WSAHandler.fixAction( msgContext );
-        WSAHandler.invoke( msgContext );
-
-        /* Process the Global Response Chain */
-        /***********************************/
-        if ((h = getGlobalResponse()) != null)
-          h.invoke(msgContext);
-      }
-    }
-
     /**
      * Main routine of the AXIS server.  In short we locate the 
appropriate
      * handler for the desired service and invoke() it.
      */
     public void invoke(MessageContext msgContext) throws AxisFault {
-        if ( tlog.isDebugEnabled() ) {
+        long t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
+        if( tlog.isDebugEnabled() ) {
             t0=System.currentTimeMillis();
         }
 
@@ -315,23 +167,16 @@
                         h = null ;
                     }
                 }
-                if ( tlog.isDebugEnabled() ) {
+                if( tlog.isDebugEnabled() ) {
                     t1=System.currentTimeMillis();
                 }
-                if ( h != null ) {
-                  try {
+                if ( h != null )
                     h.invoke(msgContext);
-                  }
-                  catch(Exception exp ) {
-                    exp.printStackTrace();
-                    throw exp ;
-                  }
-                }
                 else
                     throw new AxisFault( "Server.error",
 Messages.getMessage("noHandler00", hName),
                                          null, null );
-                if ( tlog.isDebugEnabled() ) {
+                if( tlog.isDebugEnabled() ) {
                     t2=System.currentTimeMillis();
                     tlog.debug( "AxisServer.invoke " + hName + " invoke=" 
+
                                 ( t2-t1 ) + " pre=" + (t1-t0 ));
@@ -375,22 +220,90 @@
 
                 */
 
-                invokeInboundTransport(msgContext);
- 
-                invokeService(msgContext);
-                msgContext.setPastPivot( true );
+                /* Process the Transport Specific Request Chain */
+                /**********************************************/
+                hName = msgContext.getTransportName();
+                SimpleTargetedChain transportChain = null;
+
+                if (log.isDebugEnabled())
+                    log.debug(Messages.getMessage("transport01", 
"AxisServer.invoke", hName));
+
+                if( tlog.isDebugEnabled() ) {
+                    t1=System.currentTimeMillis();
+                }
+                if ( hName != null && (h = getTransport( hName )) != null 
) {
+                    if (h instanceof SimpleTargetedChain) {
+                        transportChain = (SimpleTargetedChain)h;
+                        h = transportChain.getRequestHandler();
+                        if (h != null)
+                            h.invoke(msgContext);
+                    }
+                }
+
+                if( tlog.isDebugEnabled() ) {
+                    t2=System.currentTimeMillis();
+                }
+                /* Process the Global Request Chain */
+                /**********************************/
+                if ((h = getGlobalRequest()) != null ) {
+                    h.invoke(msgContext);
+                }
+
+                /**
+                 * At this point, the service should have been set by 
someone
+                 * (either the originator of the MessageContext, or one 
of the
+                 * transport or global Handlers).  If it hasn't been set, 
we
+                 * fault.
+                 */
+                h = msgContext.getService();
+                if (h == null) {
+                    // It's possible that we haven't yet parsed the
+                    // message at this point.  This is a kludge to
+                    // make sure we have.  There probably wants to be
+                    // some kind of declarative "parse point" on the 
handler
+                    // chain instead....
+                    Message rm = msgContext.getRequestMessage();
+                    rm.getSOAPEnvelope().getFirstBody();
+ 
+                    h = msgContext.getService();
+                    if (h == null)
+                        throw new AxisFault("Server.NoService",
+ Messages.getMessage("noService05",
+                                                                 "" + 
msgContext.getTargetService()),
+                                            null, null );
+                }
+                if( tlog.isDebugEnabled() ) {
+                    t3=System.currentTimeMillis();
+                }
 
-                /*
-                if ( msgContext.getIsOneWay() )
-                  msgContext.setResponseMessage( null );
-                */
+                initSOAPConstants(msgContext);
+                try {
+                    h.invoke(msgContext);
+                } catch (AxisFault ae) {
+                    if ((h = getGlobalRequest()) != null ) {
+                        h.onFault(msgContext);
+                    }
+                    throw ae;
+                }
 
-                // Send async response if needed
-                WSAHandler.sendResponse( msgContext );
+                if( tlog.isDebugEnabled() ) {
+                    t4=System.currentTimeMillis();
+                }
 
-                invokeOutboundTransport(msgContext);
+                /* Process the Global Response Chain */
+                /***********************************/
+                if ((h = getGlobalResponse()) != null)
+                    h.invoke(msgContext);
 
-                if ( tlog.isDebugEnabled() ) {
+                /* Process the Transport Specific Response Chain */
+                /***********************************************/
+                if (transportChain != null) {
+                    h = transportChain.getResponseHandler();
+                    if (h != null)
+                        h.invoke(msgContext);
+                }
+ 
+                if( tlog.isDebugEnabled() ) {
                     t5=System.currentTimeMillis();
                     tlog.debug( "AxisServer.invoke2 " +
                                 " preTr=" +
@@ -424,7 +337,7 @@
      * Extract ans store soap constants info from the envelope
      * @param msgContext
      * @throws AxisFault
-     */
+     */ 
     private void initSOAPConstants(MessageContext msgContext) throws 
AxisFault {
         Message msg = msgContext.getRequestMessage();
         if (msg == null)
@@ -553,9 +466,9 @@
                     // make sure we have.  There probably wants to be
                     // some kind of declarative "parse point" on the 
handler
                     // chain instead....
-                    Message msg = msgContext.getRequestMessage();
-                    if (msg != null) {
-                        msg.getSOAPEnvelope().getFirstBody();
+                    Message rm = msgContext.getRequestMessage();
+                    if (rm != null) {
+                        rm.getSOAPEnvelope().getFirstBody();
                         h = msgContext.getService();
                     }
                     if (h == null) {




Re: ant clean all-tests should work

Posted by Doug Davis <du...@us.ibm.com>.
Glen Daniels <gl...@thoughtcraft.com> wrote on 02/08/2006 10:59:59 PM:

> Doug Davis wrote:
> > everything appears to work in the trunk now  - could someone else try 
it 
> > to make sure I'm not getting a false positive?
> 
> Build works fine for me, thanks!
> 
> So I'm just tuning in on the WSA changes - they're not totally rolled 
> back, right?

Nope - just rolled back a little bit of the server-side changes.  I think
its just a small problem with how Faults are handled - was hoping to fix
that today and then recheck it back in.  Client-side changes are still 
there
and should still work.

> I'm somewhat unconvinced that rolling WSA support into Axis 1 is the 
> right thing to do here.  I'm not ready to -1 it, but would you mind 
> explaining in a little detail how the implementation works?  I haven't 
> had a chance to fully examine your intermediate checkins.  Will this 
> cause people using the Apache Addressing implementation to stop working? 

>   Do addressing headers actually get processed by the engine now, or 
> will the AddressingHandler still do that?

These WSA changes would remove the need for the old WSA code.  IMO, trying
to do WSA as an add-on to Axis1 (or any soap engine) would be a mistake. 
WSA is such a critical thing and requires such radical changes to the flow
of the messages that unless your soap engine is really 'special'  ;-)  I
doubt any normal plug-in mechanism would allow for a really clean drop-in
of the code.  Anyway, that's definitely true for Axis1. The amount of code
needed to support WSA is actually really small anyway - aside from simply
adding/parsing the headers the only other bit is the dynamic routing
based on wsa:ReplyTo - which isn't hard once Axis supports a more flexible
chain flow.

As to my specific changes....aside from the WSA code (in the wsa dir) the 
heart of the changes relate to the splitting of the engine up so that the
request, response, transport and service chains can all be called 
independently.  This actually doesn't require a lot of new code either,
just some moving around of the existing code into independent methods.
Once this was done I simply hard-coded the calls to the WSA 
logic/handlers.
This can not be done in the normal handler way since the calling of the
WSA code can not symmetrical - by that I mean the adding/processing of the 

WSA headers needs to be done immediately by the engine regardless of
whether the engine got the message from the user or from the transport.
The normal handler chain processing would require 4 different handlers
to be deployed to enable that - and that's just ugly  ;-)  Besides, once
you buy into the notion that WSA is a 'code' soap engine function there's
no need to expose it in the same way.

So, once you have all of that in place you can then deal with the dynamic
routing much easier.  Since the various chains can be called independently
you can send out responses and receive async responses and still maintain
the ability to call just the set of handlers you need to (e.g. just the
response side of things).  Also, this now enables a much better RM 
solution.
While I can't contribute some RM code right now I am adding the 
appropriate
plug-points that can be used (and I hope will be used in the not too 
distant
future :-).  The plug-points use the splitting of the chains so that RM
will, on the client, call just the transport chain on retries - note that
it can also support crashes/restarts if you persist the msgContext in your
RM code (which is now supported since I added the (de)serialize code to 
MessageContext).  On the server side since the transport chain is 
independent
of the rest of the chains, the RM code can now halt the flow and persist
the messages and have total control over when these messages are then 
processed
by the rest of the engine.  I'm also adding the plug-points for security
(not the code yet) so that even on async replies the messages can be
protected and verified correctly.

Again, none of the code I'm adding is really that big nor is it really a
major rewrite of the engine.  I was actually really happy to see how easy
it was to get this behavior from Axis by simply splitting existing methods
into several, more independent, ones.  One other thing, when my WSA code 
is
not turned on nothing should be different in terms of how existing code 
works.
So, while I said that the old WSA code will not be needed, there is no 
reason
why it could not still be plugged into the engine and used - just don't 
turn
them both on at the same time  :-)   Same code for the existing RM and 
security code.

> Basically I'd really appreciate a quick architectural summary if you can 

> swing it....?

Checkout AxisClient.java and AxisSever.java (when I check it back in) and 
you
should see how things are re-organized now - as I mentioned, the code is 
still
basically the same its just been split into different methods now.  And 
I've
been using it for quite some time now so I feel pretty confident in it.

> --Glen

Re: ant clean all-tests should work

Posted by Glen Daniels <gl...@thoughtcraft.com>.
Doug Davis wrote:
> everything appears to work in the trunk now  - could someone else try it 
> to make sure I'm not getting a false positive?

Build works fine for me, thanks!

So I'm just tuning in on the WSA changes - they're not totally rolled 
back, right?

I'm somewhat unconvinced that rolling WSA support into Axis 1 is the 
right thing to do here.  I'm not ready to -1 it, but would you mind 
explaining in a little detail how the implementation works?  I haven't 
had a chance to fully examine your intermediate checkins.  Will this 
cause people using the Apache Addressing implementation to stop working? 
  Do addressing headers actually get processed by the engine now, or 
will the AddressingHandler still do that?

Basically I'd really appreciate a quick architectural summary if you can 
swing it....?

--Glen

Re: ant clean all-tests should work

Posted by Changshin Lee <ia...@gmail.com>.
2006. 02. 09, 오후 9:28, Doug Davis 작성:

>
> I'm not using Geronimo's jar files (I'm guessing Glen didn't either  
> since it worked for him).  Can you try using other ones?

I posted the result (with Sun's jars) at http:// 
marc.theaimsgroup.com/?l=axis-dev&m=113947121721627&w=2 .

Thanks,

Ias

>
> -Doug
>
>
>
> Changshin Lee <ia...@gmail.com>
> 02/09/2006 02:02 AM
> Please respond to
> axis-dev
>
>
> To
> axis-dev@ws.apache.org
> cc
> Subject
> Re: ant clean all-tests should work
>
>
>
>
>
> For me, it still fails at test.saaj package test with the same  
> error message as I reported before. samples.swa.SwaTestCase also  
> fails when the package test is excluded. I guess it's due to  
> activation.jar and mail.jar from Geronimo.
>
> Thanks for your work on Axis 1's buildability,
>
> Ias
>
>
> 2006. 02. 09, 오전 11:26, Doug Davis 작성:
>
>
> everything appears to work in the trunk now  - could someone else  
> try it to make sure I'm not getting a false positive?
> thanks,
> -Doug
>
>
> dug@apache.org
> 02/08/2006 09:04 PM
>
>
> To
> axis-cvs@ws.apache.org
> cc
> Subject
> svn commit: r376147 - /webservices/axis/trunk/java/src/org/apache/ 
> axis/server/AxisServer.java
>
>
>
>
>
>
>
> Author: dug
> Date: Wed Feb  8 18:04:10 2006
> New Revision: 376147
>
> URL: http://svn.apache.org/viewcvs?rev=376147&view=rev
> Log:
> Revert AxisServer back to 01/23 version for now
>
> Modified:
>    webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java
>
> Modified: webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/ 
> org/apache/axis/server/AxisServer.java? 
> rev=376147&r1=376146&r2=376147&view=diff
> ====================================================================== 
> ========
> --- webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java (original)
> +++ webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java Wed Feb  8 18:04:10 2006
> @@ -1,12 +1,12 @@
> /*
>  * Copyright 2001-2004 The Apache Software Foundation.
> - *
> + *
>  * Licensed 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.
> @@ -25,25 +25,19 @@
> import org.apache.axis.Message;
> import org.apache.axis.MessageContext;
> import org.apache.axis.SimpleTargetedChain;
> +import org.apache.axis.message.SOAPEnvelope;
> import org.apache.axis.soap.SOAPConstants;
> import org.apache.axis.client.AxisClient;
> import org.apache.axis.components.logger.LogFactory;
> import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
> -import org.apache.axis.message.SOAPEnvelope;
> import org.apache.axis.utils.ClassUtils;
> import org.apache.axis.utils.Messages;
> import org.apache.commons.logging.Log;
> -import org.apache.axis.message.SOAPEnvelope;
> -import org.apache.axis.message.SOAPBodyElement;
> -import org.apache.axis.message.SOAPHeaderElement;
> -import org.apache.axis.wsa.MIHeader;
> -import org.apache.axis.wsa.WSAHandler;
>
> import java.util.Map;
> -import java.lang.reflect.Method ;
> -
> /**
>  *
> + * @author Doug Davis (dug@us.ibm.com)
>  * @author Glen Daniels (gdaniels@allaire.com)
>  */
> public class AxisServer extends AxisEngine
> @@ -54,8 +48,7 @@
>         LogFactory.getLog("org.apache.axis.TIME");
>
>     private static AxisServerFactory factory = null;
> -    private long   t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
> -
> +
>     public static AxisServer getServer(Map environment) throws  
> AxisFault
>     {
>         if (factory == null) {
> @@ -131,154 +124,13 @@
>         return clientEngine;
>     }
>
> -    public void invokeInboundTransport(MessageContext msgContext)
> -      throws Exception
> -    {
> -      /* Process the Transport Specific Request Chain */
> -      /**********************************************/
> -      String              hName          =  
> msgContext.getTransportName();
> -      Handler             h              = null ;
> -      SimpleTargetedChain transportChain = null ;
> -
> -      if (log.isDebugEnabled()) {
> -        log.debug(Messages.getMessage 
> ("transport01","AxisServer.invoke",hName));
> -        t1=System.currentTimeMillis();
> -      }
> -
> -      if ( hName != null && (h = getTransport( hName )) != null ) {
> -        if (h instanceof SimpleTargetedChain) {
> -          transportChain = (SimpleTargetedChain)h;
> -          h = transportChain.getRequestHandler();
> -          if (h != null)
> -            h.invoke(msgContext);
> -        }
> -      }
> -      // Run security
> -      // Add call to securityCode.Verify();  // dug
> -    }
> -
> -    public void invokeOutboundTransport(MessageContext msgContext)
> -      throws Exception
> -    {
> -      String              hName          =  
> msgContext.getTransportName();
> -      Handler             h              = null ;
> -      SimpleTargetedChain transportChain = null ;
> -
> -      // Run security
> -      // Add call to securityCode.protect(); // dug
> -
> -      /* Process the Transport Specific Response Chain */
> -      /***********************************************/
> -      if ( hName != null && (h = getTransport( hName )) != null ) {
> -        if (h instanceof SimpleTargetedChain) {
> -          transportChain = (SimpleTargetedChain)h;
> -          h = transportChain.getResponseHandler();
> -          if (h != null) {
> -            // add call to RM code to add piggy-backed headers
> -            // RMCode.addRMHeaders(); // Dug
> -            h.invoke(msgContext);
> -          }
> -        }
> -      }
> -    }
> -
> -    public void invokeService(MessageContext msgContext) throws  
> Exception {
> -      Handler h = null ;
> -
> -      if ( tlog.isDebugEnabled() )
> -        t2=System.currentTimeMillis();
> -
> -      try {
> -        // Run WSA logic
> -        WSAHandler.invoke( msgContext );
> -
> -        MIHeader mih = MIHeader.fromCurrentMessage();
> -
> -        if ( mih != null ) {
> -          // See if it needs to be rerouted
> -          // Dug - not yet // (new WSXHandler()).invoke 
> ( msgContext );
> -        }
> -
> -        /* Process the Global Request Chain */
> -        /**********************************/
> -        if ((h = getGlobalRequest()) != null ) {
> -          h.invoke(msgContext);
> -        }
> -
> -        /**
> -         * At this point, the service should have been set by someone
> -         * (either the originator of the MessageContext, or one of  
> the
> -         * transport or global Handlers).  If it hasn't been set, we
> -         * fault.
> -         */
> -        h = msgContext.getService();
> -        if (h == null) {
> -          // It's possible that we haven't yet parsed the
> -          // message at this point.  This is a kludge to
> -          // make sure we have.  There probably wants to be
> -          // some kind of declarative "parse point" on the handler
> -          // chain instead....
> -          Message rm = msgContext.getRequestMessage();
> -          rm.getSOAPEnvelope().getFirstBody();
> -
> -          h = msgContext.getService();
> -          if (h == null)
> -            throw new AxisFault("Server.NoService",
> -                                Messages.getMessage("noService05",
> -                                "" + msgContext.getTargetService()),
> -                                null, null );
> -        }
> -        if ( tlog.isDebugEnabled() )
> -          t3=System.currentTimeMillis();
> -
> -        SOAPEnvelope env = msgContext.getRequestMessage 
> ().getSOAPEnvelope();
> -
> -        // Only invoke the service is there's a body - sort of a hack
> -        if ( env.getFirstBody() != null ) {
> -          initSOAPConstants(msgContext);
> -          h.invoke(msgContext);
> -        }
> -
> -        // WSA logic is run first
> -        WSAHandler.invoke( msgContext );
> -
> -        if ( tlog.isDebugEnabled() )
> -          t4=System.currentTimeMillis();
> -
> -        /* Process the Global Response Chain */
> -        /***********************************/
> -        if ((h = getGlobalResponse()) != null)
> -          h.invoke(msgContext);
> -      }
> -      catch(Exception exp) {
> -        // If WSA isn't turned on then just rethrow it
> -        // Dug - fix this, it should not do this we need to make this
> -        // work even when WSA is turned on
> -        if ( MIHeader.fromRequest() == null ) throw exp ;
> -
> -        if ( !(exp instanceof AxisFault) )
> -          exp = AxisFault.makeFault( exp );
> -
> -        msgContext.setPastPivot( true );
> -        msgContext.setResponseMessage( new Message(exp) );
> -
> -        // WSA stuff
> -        WSAHandler.fixAction( msgContext );
> -        WSAHandler.invoke( msgContext );
> -
> -        /* Process the Global Response Chain */
> -        /***********************************/
> -        if ((h = getGlobalResponse()) != null)
> -          h.invoke(msgContext);
> -      }
> -    }
> -
>     /**
>      * Main routine of the AXIS server.  In short we locate the  
> appropriate
>      * handler for the desired service and invoke() it.
>      */
>     public void invoke(MessageContext msgContext) throws AxisFault {
> -        if ( tlog.isDebugEnabled() ) {
> +        long t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
> +        if( tlog.isDebugEnabled() ) {
>             t0=System.currentTimeMillis();
>         }
>
> @@ -315,23 +167,16 @@
>                         h = null ;
>                     }
>                 }
> -                if ( tlog.isDebugEnabled() ) {
> +                if( tlog.isDebugEnabled() ) {
>                     t1=System.currentTimeMillis();
>                 }
> -                if ( h != null ) {
> -                  try {
> +                if ( h != null )
>                     h.invoke(msgContext);
> -                  }
> -                  catch(Exception exp ) {
> -                    exp.printStackTrace();
> -                    throw exp ;
> -                  }
> -                }
>                 else
>                     throw new AxisFault( "Server.error",
>                                          Messages.getMessage 
> ("noHandler00", hName),
>                                          null, null );
> -                if ( tlog.isDebugEnabled() ) {
> +                if( tlog.isDebugEnabled() ) {
>                     t2=System.currentTimeMillis();
>                     tlog.debug( "AxisServer.invoke " + hName + "  
> invoke=" +
>                                 ( t2-t1 ) + " pre=" + (t1-t0 ));
> @@ -375,22 +220,90 @@
>
>                 */
>
> -                invokeInboundTransport(msgContext);
> -
> -                invokeService(msgContext);
> -                msgContext.setPastPivot( true );
> +                /* Process the Transport Specific Request Chain */
> +                /**********************************************/
> +                hName = msgContext.getTransportName();
> +                SimpleTargetedChain transportChain = null;
> +
> +                if (log.isDebugEnabled())
> +                    log.debug(Messages.getMessage("transport01",  
> "AxisServer.invoke", hName));
> +
> +                if( tlog.isDebugEnabled() ) {
> +                    t1=System.currentTimeMillis();
> +                }
> +                if ( hName != null && (h = getTransport( hName )) ! 
> = null ) {
> +                    if (h instanceof SimpleTargetedChain) {
> +                        transportChain = (SimpleTargetedChain)h;
> +                        h = transportChain.getRequestHandler();
> +                        if (h != null)
> +                            h.invoke(msgContext);
> +                    }
> +                }
> +
> +                if( tlog.isDebugEnabled() ) {
> +                    t2=System.currentTimeMillis();
> +                }
> +                /* Process the Global Request Chain */
> +                /**********************************/
> +                if ((h = getGlobalRequest()) != null ) {
> +                    h.invoke(msgContext);
> +                }
> +
> +                /**
> +                 * At this point, the service should have been set  
> by someone
> +                 * (either the originator of the MessageContext,  
> or one of the
> +                 * transport or global Handlers).  If it hasn't  
> been set, we
> +                 * fault.
> +                 */
> +                h = msgContext.getService();
> +                if (h == null) {
> +                    // It's possible that we haven't yet parsed the
> +                    // message at this point.  This is a kludge to
> +                    // make sure we have.  There probably wants to be
> +                    // some kind of declarative "parse point" on  
> the handler
> +                    // chain instead....
> +                    Message rm = msgContext.getRequestMessage();
> +                    rm.getSOAPEnvelope().getFirstBody();
> +
> +                    h = msgContext.getService();
> +                    if (h == null)
> +                        throw new AxisFault("Server.NoService",
> +                                            Messages.getMessage 
> ("noService05",
> +                                                                  
> "" + msgContext.getTargetService()),
> +                                            null, null );
> +                }
> +                if( tlog.isDebugEnabled() ) {
> +                    t3=System.currentTimeMillis();
> +                }
>
> -                /*
> -                if ( msgContext.getIsOneWay() )
> -                  msgContext.setResponseMessage( null );
> -                */
> +                initSOAPConstants(msgContext);
> +                try {
> +                    h.invoke(msgContext);
> +                } catch (AxisFault ae) {
> +                    if ((h = getGlobalRequest()) != null ) {
> +                        h.onFault(msgContext);
> +                    }
> +                    throw ae;
> +                }
>
> -                // Send async response if needed
> -                WSAHandler.sendResponse( msgContext );
> +                if( tlog.isDebugEnabled() ) {
> +                    t4=System.currentTimeMillis();
> +                }
>
> -                invokeOutboundTransport(msgContext);
> +                /* Process the Global Response Chain */
> +                /***********************************/
> +                if ((h = getGlobalResponse()) != null)
> +                    h.invoke(msgContext);
>
> -                if ( tlog.isDebugEnabled() ) {
> +                /* Process the Transport Specific Response Chain */
> +                /***********************************************/
> +                if (transportChain != null) {
> +                    h = transportChain.getResponseHandler();
> +                    if (h != null)
> +                        h.invoke(msgContext);
> +                }
> +
> +                if( tlog.isDebugEnabled() ) {
>                     t5=System.currentTimeMillis();
>                     tlog.debug( "AxisServer.invoke2 " +
>                                 " preTr=" +
> @@ -424,7 +337,7 @@
>      * Extract ans store soap constants info from the envelope
>      * @param msgContext
>      * @throws AxisFault
> -     */
> +     */
>     private void initSOAPConstants(MessageContext msgContext)  
> throws AxisFault {
>         Message msg = msgContext.getRequestMessage();
>         if (msg == null)
> @@ -553,9 +466,9 @@
>                     // make sure we have.  There probably wants to be
>                     // some kind of declarative "parse point" on  
> the handler
>                     // chain instead....
> -                    Message msg = msgContext.getRequestMessage();
> -                    if (msg != null) {
> -                        msg.getSOAPEnvelope().getFirstBody();
> +                    Message rm = msgContext.getRequestMessage();
> +                    if (rm != null) {
> +                        rm.getSOAPEnvelope().getFirstBody();
>                         h = msgContext.getService();
>                     }
>                     if (h == null) {
>
>
>
>


Re: ant clean all-tests should work

Posted by Doug Davis <du...@us.ibm.com>.
I'm not using Geronimo's jar files (I'm guessing Glen didn't either since 
it worked for him).  Can you try using other ones? 
-Doug




Changshin Lee <ia...@gmail.com> 
02/09/2006 02:02 AM
Please respond to
axis-dev


To
axis-dev@ws.apache.org
cc

Subject
Re: ant clean all-tests should work






For me, it still fails at test.saaj package test with the same error 
message as I reported before. samples.swa.SwaTestCase also fails when the 
package test is excluded. I guess it's due to activation.jar and mail.jar 
from Geronimo.

Thanks for your work on Axis 1's buildability,

Ias


2006. 02. 09, 오전 11:26, Doug Davis 작성:


everything appears to work in the trunk now  - could someone else try it 
to make sure I'm not getting a false positive? 
thanks, 
-Doug 



dug@apache.org 
02/08/2006 09:04 PM 


To
axis-cvs@ws.apache.org 
cc

Subject
svn commit: r376147 - 
/webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java








Author: dug
Date: Wed Feb  8 18:04:10 2006
New Revision: 376147

URL: http://svn.apache.org/viewcvs?rev=376147&view=rev
Log:
Revert AxisServer back to 01/23 version for now

Modified:
   webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java

Modified: 
webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java?rev=376147&r1=376146&r2=376147&view=diff

==============================================================================
--- webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java 
(original)
+++ webservices/axis/trunk/java/src/org/apache/axis/server/AxisServer.java 
Wed Feb  8 18:04:10 2006
@@ -1,12 +1,12 @@
/*
 * Copyright 2001-2004 The Apache Software Foundation.
- *
+ * 
 * Licensed 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.
@@ -25,25 +25,19 @@
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.SimpleTargetedChain;
+import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.soap.SOAPConstants;
import org.apache.axis.client.AxisClient;
import org.apache.axis.components.logger.LogFactory;
import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
-import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.utils.ClassUtils;
import org.apache.axis.utils.Messages;
import org.apache.commons.logging.Log;
-import org.apache.axis.message.SOAPEnvelope;
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.axis.message.SOAPHeaderElement;
-import org.apache.axis.wsa.MIHeader;
-import org.apache.axis.wsa.WSAHandler;

import java.util.Map;
-import java.lang.reflect.Method ;
-
/**
 *
+ * @author Doug Davis (dug@us.ibm.com)
 * @author Glen Daniels (gdaniels@allaire.com)
 */
public class AxisServer extends AxisEngine
@@ -54,8 +48,7 @@
        LogFactory.getLog("org.apache.axis.TIME");

    private static AxisServerFactory factory = null;
-    private long   t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
-
+    
    public static AxisServer getServer(Map environment) throws AxisFault
    {
        if (factory == null) {
@@ -131,154 +124,13 @@
        return clientEngine;
    }

-    public void invokeInboundTransport(MessageContext msgContext) 
-      throws Exception
-    {
-      /* Process the Transport Specific Request Chain */
-      /**********************************************/
-      String              hName          = msgContext.getTransportName();
-      Handler             h              = null ;
-      SimpleTargetedChain transportChain = null ;
-
-      if (log.isDebugEnabled()) {
-       
 log.debug(Messages.getMessage("transport01","AxisServer.invoke",hName));
-        t1=System.currentTimeMillis();
-      }
-      
-      if ( hName != null && (h = getTransport( hName )) != null ) {
-        if (h instanceof SimpleTargetedChain) {
-          transportChain = (SimpleTargetedChain)h;
-          h = transportChain.getRequestHandler();
-          if (h != null)
-            h.invoke(msgContext);
-        }
-      }
-      // Run security
-      // Add call to securityCode.Verify();  // dug
-    }
-
-    public void invokeOutboundTransport(MessageContext msgContext)
-      throws Exception
-    {
-      String              hName          = msgContext.getTransportName();
-      Handler             h              = null ;
-      SimpleTargetedChain transportChain = null ;
-
-      // Run security
-      // Add call to securityCode.protect(); // dug
-
-      /* Process the Transport Specific Response Chain */
-      /***********************************************/
-      if ( hName != null && (h = getTransport( hName )) != null ) {
-        if (h instanceof SimpleTargetedChain) {
-          transportChain = (SimpleTargetedChain)h;
-          h = transportChain.getResponseHandler();
-          if (h != null) {
-            // add call to RM code to add piggy-backed headers
-            // RMCode.addRMHeaders(); // Dug
-            h.invoke(msgContext);
-          }
-        }
-      }
-    }
-
-    public void invokeService(MessageContext msgContext) throws Exception 
{
-      Handler h = null ;
-
-      if ( tlog.isDebugEnabled() ) 
-        t2=System.currentTimeMillis();
-
-      try {
-        // Run WSA logic
-        WSAHandler.invoke( msgContext );
-
-        MIHeader mih = MIHeader.fromCurrentMessage();
-
-        if ( mih != null ) {
-          // See if it needs to be rerouted
-          // Dug - not yet // (new WSXHandler()).invoke( msgContext );
-        }
-
-        /* Process the Global Request Chain */
-        /**********************************/
-        if ((h = getGlobalRequest()) != null ) {
-          h.invoke(msgContext);
-        }
-  
-        /**
-         * At this point, the service should have been set by someone
-         * (either the originator of the MessageContext, or one of the
-         * transport or global Handlers).  If it hasn't been set, we
-         * fault.
-         */
-        h = msgContext.getService();
-        if (h == null) {
-          // It's possible that we haven't yet parsed the
-          // message at this point.  This is a kludge to
-          // make sure we have.  There probably wants to be
-          // some kind of declarative "parse point" on the handler
-          // chain instead....
-          Message rm = msgContext.getRequestMessage();
-          rm.getSOAPEnvelope().getFirstBody();
-                      
-          h = msgContext.getService();
-          if (h == null)
-            throw new AxisFault("Server.NoService",
-                                Messages.getMessage("noService05",
-                                "" + msgContext.getTargetService()),
-                                null, null );
-        }
-        if ( tlog.isDebugEnabled() ) 
-          t3=System.currentTimeMillis();
-  
-        SOAPEnvelope env = 
msgContext.getRequestMessage().getSOAPEnvelope();
-  
-        // Only invoke the service is there's a body - sort of a hack
-        if ( env.getFirstBody() != null ) {
-          initSOAPConstants(msgContext);
-          h.invoke(msgContext);
-        }
-
-        // WSA logic is run first
-        WSAHandler.invoke( msgContext );
-
-        if ( tlog.isDebugEnabled() ) 
-          t4=System.currentTimeMillis();
-  
-        /* Process the Global Response Chain */
-        /***********************************/
-        if ((h = getGlobalResponse()) != null)
-          h.invoke(msgContext);
-      }
-      catch(Exception exp) {
-        // If WSA isn't turned on then just rethrow it
-        // Dug - fix this, it should not do this we need to make this
-        // work even when WSA is turned on
-        if ( MIHeader.fromRequest() == null ) throw exp ;
-
-        if ( !(exp instanceof AxisFault) )
-          exp = AxisFault.makeFault( exp );
-
-        msgContext.setPastPivot( true );
-        msgContext.setResponseMessage( new Message(exp) );
-
-        // WSA stuff
-        WSAHandler.fixAction( msgContext );
-        WSAHandler.invoke( msgContext );
-
-        /* Process the Global Response Chain */
-        /***********************************/
-        if ((h = getGlobalResponse()) != null)
-          h.invoke(msgContext);
-      }
-    }
-
    /**
     * Main routine of the AXIS server.  In short we locate the 
appropriate
     * handler for the desired service and invoke() it.
     */
    public void invoke(MessageContext msgContext) throws AxisFault {
-        if ( tlog.isDebugEnabled() ) {
+        long t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
+        if( tlog.isDebugEnabled() ) {
            t0=System.currentTimeMillis();
        }
        
@@ -315,23 +167,16 @@
                        h = null ;
                    }
                }
-                if ( tlog.isDebugEnabled() ) {
+                if( tlog.isDebugEnabled() ) {
                    t1=System.currentTimeMillis();
                }
-                if ( h != null ) {
-                  try {
+                if ( h != null )
                    h.invoke(msgContext);
-                  }
-                  catch(Exception exp ) {
-                    exp.printStackTrace();
-                    throw exp ;
-                  }
-                }
                else
                    throw new AxisFault( "Server.error",
                                        
 Messages.getMessage("noHandler00", hName),
                                         null, null );
-                if ( tlog.isDebugEnabled() ) {
+                if( tlog.isDebugEnabled() ) {
                    t2=System.currentTimeMillis();
                    tlog.debug( "AxisServer.invoke " + hName + " invoke=" 
+
                                ( t2-t1 ) + " pre=" + (t1-t0 ));
@@ -375,22 +220,90 @@

                */

-                invokeInboundTransport(msgContext);
-                
-                invokeService(msgContext);
-                msgContext.setPastPivot( true );
+                /* Process the Transport Specific Request Chain */
+                /**********************************************/
+                hName = msgContext.getTransportName();
+                SimpleTargetedChain transportChain = null;
+
+                if (log.isDebugEnabled())
+                    log.debug(Messages.getMessage("transport01", 
"AxisServer.invoke", hName));
+
+                if( tlog.isDebugEnabled() ) {
+                    t1=System.currentTimeMillis();
+                }
+                if ( hName != null && (h = getTransport( hName )) != null 
) {
+                    if (h instanceof SimpleTargetedChain) {
+                        transportChain = (SimpleTargetedChain)h;
+                        h = transportChain.getRequestHandler();
+                        if (h != null)
+                            h.invoke(msgContext);
+                    }
+                }
+
+                if( tlog.isDebugEnabled() ) {
+                    t2=System.currentTimeMillis();
+                }
+                /* Process the Global Request Chain */
+                /**********************************/
+                if ((h = getGlobalRequest()) != null ) {
+                    h.invoke(msgContext);
+                }
+
+                /**
+                 * At this point, the service should have been set by 
someone
+                 * (either the originator of the MessageContext, or one 
of the
+                 * transport or global Handlers).  If it hasn't been set, 
we
+                 * fault.
+                 */
+                h = msgContext.getService();
+                if (h == null) {
+                    // It's possible that we haven't yet parsed the
+                    // message at this point.  This is a kludge to
+                    // make sure we have.  There probably wants to be
+                    // some kind of declarative "parse point" on the 
handler
+                    // chain instead....
+                    Message rm = msgContext.getRequestMessage();
+                    rm.getSOAPEnvelope().getFirstBody();
+                    
+                    h = msgContext.getService();
+                    if (h == null)
+                        throw new AxisFault("Server.NoService",
+                                           
 Messages.getMessage("noService05",
+                                                                 "" + 
msgContext.getTargetService()),
+                                            null, null );
+                }
+                if( tlog.isDebugEnabled() ) {
+                    t3=System.currentTimeMillis();
+                }
                
-                /*
-                if ( msgContext.getIsOneWay() )
-                  msgContext.setResponseMessage( null );
-                */
+                initSOAPConstants(msgContext);
+                try {
+                    h.invoke(msgContext);
+                } catch (AxisFault ae) {
+                    if ((h = getGlobalRequest()) != null ) {
+                        h.onFault(msgContext);
+                    }
+                    throw ae;
+                }

-                // Send async response if needed
-                WSAHandler.sendResponse( msgContext );
+                if( tlog.isDebugEnabled() ) {
+                    t4=System.currentTimeMillis();
+                }

-                invokeOutboundTransport(msgContext);
+                /* Process the Global Response Chain */
+                /***********************************/
+                if ((h = getGlobalResponse()) != null)
+                    h.invoke(msgContext);

-                if ( tlog.isDebugEnabled() ) {
+                /* Process the Transport Specific Response Chain */
+                /***********************************************/
+                if (transportChain != null) {
+                    h = transportChain.getResponseHandler();
+                    if (h != null)
+                        h.invoke(msgContext);
+                }
+                
+                if( tlog.isDebugEnabled() ) {
                    t5=System.currentTimeMillis();
                    tlog.debug( "AxisServer.invoke2 " +
                                " preTr=" +
@@ -424,7 +337,7 @@
     * Extract ans store soap constants info from the envelope
     * @param msgContext
     * @throws AxisFault
-     */
+     */ 
    private void initSOAPConstants(MessageContext msgContext) throws 
AxisFault {
        Message msg = msgContext.getRequestMessage();
        if (msg == null)
@@ -553,9 +466,9 @@
                    // make sure we have.  There probably wants to be
                    // some kind of declarative "parse point" on the 
handler
                    // chain instead....
-                    Message msg = msgContext.getRequestMessage();
-                    if (msg != null) {
-                        msg.getSOAPEnvelope().getFirstBody();
+                    Message rm = msgContext.getRequestMessage();
+                    if (rm != null) {
+                        rm.getSOAPEnvelope().getFirstBody();
                        h = msgContext.getService();
                    }
                    if (h == null) {





Re: ant clean all-tests should work

Posted by Changshin Lee <ia...@gmail.com>.
For me, it still fails at test.saaj package test with the same error  
message as I reported before. samples.swa.SwaTestCase also fails when  
the package test is excluded. I guess it's due to activation.jar and  
mail.jar from Geronimo.

Thanks for your work on Axis 1's buildability,

Ias


2006. 02. 09, 오전 11:26, Doug Davis 작성:

>
> everything appears to work in the trunk now  - could someone else  
> try it to make sure I'm not getting a false positive?
> thanks,
> -Doug
>
>
>
> dug@apache.org
> 02/08/2006 09:04 PM
>
> To
> axis-cvs@ws.apache.org
> cc
> Subject
> svn commit: r376147 - /webservices/axis/trunk/java/src/org/apache/ 
> axis/server/AxisServer.java
>
>
>
>
>
> Author: dug
> Date: Wed Feb  8 18:04:10 2006
> New Revision: 376147
>
> URL: http://svn.apache.org/viewcvs?rev=376147&view=rev
> Log:
> Revert AxisServer back to 01/23 version for now
>
> Modified:
>    webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java
>
> Modified: webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/ 
> org/apache/axis/server/AxisServer.java? 
> rev=376147&r1=376146&r2=376147&view=diff
> ====================================================================== 
> ========
> --- webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java (original)
> +++ webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java Wed Feb  8 18:04:10 2006
> @@ -1,12 +1,12 @@
> /*
>  * Copyright 2001-2004 The Apache Software Foundation.
> - *
> + *
>  * Licensed 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.
> @@ -25,25 +25,19 @@
> import org.apache.axis.Message;
> import org.apache.axis.MessageContext;
> import org.apache.axis.SimpleTargetedChain;
> +import org.apache.axis.message.SOAPEnvelope;
> import org.apache.axis.soap.SOAPConstants;
> import org.apache.axis.client.AxisClient;
> import org.apache.axis.components.logger.LogFactory;
> import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
> -import org.apache.axis.message.SOAPEnvelope;
> import org.apache.axis.utils.ClassUtils;
> import org.apache.axis.utils.Messages;
> import org.apache.commons.logging.Log;
> -import org.apache.axis.message.SOAPEnvelope;
> -import org.apache.axis.message.SOAPBodyElement;
> -import org.apache.axis.message.SOAPHeaderElement;
> -import org.apache.axis.wsa.MIHeader;
> -import org.apache.axis.wsa.WSAHandler;
>
> import java.util.Map;
> -import java.lang.reflect.Method ;
> -
> /**
>  *
> + * @author Doug Davis (dug@us.ibm.com)
>  * @author Glen Daniels (gdaniels@allaire.com)
>  */
> public class AxisServer extends AxisEngine
> @@ -54,8 +48,7 @@
>         LogFactory.getLog("org.apache.axis.TIME");
>
>     private static AxisServerFactory factory = null;
> -    private long   t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
> -
> +
>     public static AxisServer getServer(Map environment) throws  
> AxisFault
>     {
>         if (factory == null) {
> @@ -131,154 +124,13 @@
>         return clientEngine;
>     }
>
> -    public void invokeInboundTransport(MessageContext msgContext)
> -      throws Exception
> -    {
> -      /* Process the Transport Specific Request Chain */
> -      /**********************************************/
> -      String              hName          =  
> msgContext.getTransportName();
> -      Handler             h              = null ;
> -      SimpleTargetedChain transportChain = null ;
> -
> -      if (log.isDebugEnabled()) {
> -        log.debug(Messages.getMessage 
> ("transport01","AxisServer.invoke",hName));
> -        t1=System.currentTimeMillis();
> -      }
> -
> -      if ( hName != null && (h = getTransport( hName )) != null ) {
> -        if (h instanceof SimpleTargetedChain) {
> -          transportChain = (SimpleTargetedChain)h;
> -          h = transportChain.getRequestHandler();
> -          if (h != null)
> -            h.invoke(msgContext);
> -        }
> -      }
> -      // Run security
> -      // Add call to securityCode.Verify();  // dug
> -    }
> -
> -    public void invokeOutboundTransport(MessageContext msgContext)
> -      throws Exception
> -    {
> -      String              hName          =  
> msgContext.getTransportName();
> -      Handler             h              = null ;
> -      SimpleTargetedChain transportChain = null ;
> -
> -      // Run security
> -      // Add call to securityCode.protect(); // dug
> -
> -      /* Process the Transport Specific Response Chain */
> -      /***********************************************/
> -      if ( hName != null && (h = getTransport( hName )) != null ) {
> -        if (h instanceof SimpleTargetedChain) {
> -          transportChain = (SimpleTargetedChain)h;
> -          h = transportChain.getResponseHandler();
> -          if (h != null) {
> -            // add call to RM code to add piggy-backed headers
> -            // RMCode.addRMHeaders(); // Dug
> -            h.invoke(msgContext);
> -          }
> -        }
> -      }
> -    }
> -
> -    public void invokeService(MessageContext msgContext) throws  
> Exception {
> -      Handler h = null ;
> -
> -      if ( tlog.isDebugEnabled() )
> -        t2=System.currentTimeMillis();
> -
> -      try {
> -        // Run WSA logic
> -        WSAHandler.invoke( msgContext );
> -
> -        MIHeader mih = MIHeader.fromCurrentMessage();
> -
> -        if ( mih != null ) {
> -          // See if it needs to be rerouted
> -          // Dug - not yet // (new WSXHandler()).invoke 
> ( msgContext );
> -        }
> -
> -        /* Process the Global Request Chain */
> -        /**********************************/
> -        if ((h = getGlobalRequest()) != null ) {
> -          h.invoke(msgContext);
> -        }
> -
> -        /**
> -         * At this point, the service should have been set by someone
> -         * (either the originator of the MessageContext, or one of  
> the
> -         * transport or global Handlers).  If it hasn't been set, we
> -         * fault.
> -         */
> -        h = msgContext.getService();
> -        if (h == null) {
> -          // It's possible that we haven't yet parsed the
> -          // message at this point.  This is a kludge to
> -          // make sure we have.  There probably wants to be
> -          // some kind of declarative "parse point" on the handler
> -          // chain instead....
> -          Message rm = msgContext.getRequestMessage();
> -          rm.getSOAPEnvelope().getFirstBody();
> -
> -          h = msgContext.getService();
> -          if (h == null)
> -            throw new AxisFault("Server.NoService",
> -                                Messages.getMessage("noService05",
> -                                "" + msgContext.getTargetService()),
> -                                null, null );
> -        }
> -        if ( tlog.isDebugEnabled() )
> -          t3=System.currentTimeMillis();
> -
> -        SOAPEnvelope env = msgContext.getRequestMessage 
> ().getSOAPEnvelope();
> -
> -        // Only invoke the service is there's a body - sort of a hack
> -        if ( env.getFirstBody() != null ) {
> -          initSOAPConstants(msgContext);
> -          h.invoke(msgContext);
> -        }
> -
> -        // WSA logic is run first
> -        WSAHandler.invoke( msgContext );
> -
> -        if ( tlog.isDebugEnabled() )
> -          t4=System.currentTimeMillis();
> -
> -        /* Process the Global Response Chain */
> -        /***********************************/
> -        if ((h = getGlobalResponse()) != null)
> -          h.invoke(msgContext);
> -      }
> -      catch(Exception exp) {
> -        // If WSA isn't turned on then just rethrow it
> -        // Dug - fix this, it should not do this we need to make this
> -        // work even when WSA is turned on
> -        if ( MIHeader.fromRequest() == null ) throw exp ;
> -
> -        if ( !(exp instanceof AxisFault) )
> -          exp = AxisFault.makeFault( exp );
> -
> -        msgContext.setPastPivot( true );
> -        msgContext.setResponseMessage( new Message(exp) );
> -
> -        // WSA stuff
> -        WSAHandler.fixAction( msgContext );
> -        WSAHandler.invoke( msgContext );
> -
> -        /* Process the Global Response Chain */
> -        /***********************************/
> -        if ((h = getGlobalResponse()) != null)
> -          h.invoke(msgContext);
> -      }
> -    }
> -
>     /**
>      * Main routine of the AXIS server.  In short we locate the  
> appropriate
>      * handler for the desired service and invoke() it.
>      */
>     public void invoke(MessageContext msgContext) throws AxisFault {
> -        if ( tlog.isDebugEnabled() ) {
> +        long t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
> +        if( tlog.isDebugEnabled() ) {
>             t0=System.currentTimeMillis();
>         }
>
> @@ -315,23 +167,16 @@
>                         h = null ;
>                     }
>                 }
> -                if ( tlog.isDebugEnabled() ) {
> +                if( tlog.isDebugEnabled() ) {
>                     t1=System.currentTimeMillis();
>                 }
> -                if ( h != null ) {
> -                  try {
> +                if ( h != null )
>                     h.invoke(msgContext);
> -                  }
> -                  catch(Exception exp ) {
> -                    exp.printStackTrace();
> -                    throw exp ;
> -                  }
> -                }
>                 else
>                     throw new AxisFault( "Server.error",
>                                          Messages.getMessage 
> ("noHandler00", hName),
>                                          null, null );
> -                if ( tlog.isDebugEnabled() ) {
> +                if( tlog.isDebugEnabled() ) {
>                     t2=System.currentTimeMillis();
>                     tlog.debug( "AxisServer.invoke " + hName + "  
> invoke=" +
>                                 ( t2-t1 ) + " pre=" + (t1-t0 ));
> @@ -375,22 +220,90 @@
>
>                 */
>
> -                invokeInboundTransport(msgContext);
> -
> -                invokeService(msgContext);
> -                msgContext.setPastPivot( true );
> +                /* Process the Transport Specific Request Chain */
> +                /**********************************************/
> +                hName = msgContext.getTransportName();
> +                SimpleTargetedChain transportChain = null;
> +
> +                if (log.isDebugEnabled())
> +                    log.debug(Messages.getMessage("transport01",  
> "AxisServer.invoke", hName));
> +
> +                if( tlog.isDebugEnabled() ) {
> +                    t1=System.currentTimeMillis();
> +                }
> +                if ( hName != null && (h = getTransport( hName )) ! 
> = null ) {
> +                    if (h instanceof SimpleTargetedChain) {
> +                        transportChain = (SimpleTargetedChain)h;
> +                        h = transportChain.getRequestHandler();
> +                        if (h != null)
> +                            h.invoke(msgContext);
> +                    }
> +                }
> +
> +                if( tlog.isDebugEnabled() ) {
> +                    t2=System.currentTimeMillis();
> +                }
> +                /* Process the Global Request Chain */
> +                /**********************************/
> +                if ((h = getGlobalRequest()) != null ) {
> +                    h.invoke(msgContext);
> +                }
> +
> +                /**
> +                 * At this point, the service should have been set  
> by someone
> +                 * (either the originator of the MessageContext,  
> or one of the
> +                 * transport or global Handlers).  If it hasn't  
> been set, we
> +                 * fault.
> +                 */
> +                h = msgContext.getService();
> +                if (h == null) {
> +                    // It's possible that we haven't yet parsed the
> +                    // message at this point.  This is a kludge to
> +                    // make sure we have.  There probably wants to be
> +                    // some kind of declarative "parse point" on  
> the handler
> +                    // chain instead....
> +                    Message rm = msgContext.getRequestMessage();
> +                    rm.getSOAPEnvelope().getFirstBody();
> +
> +                    h = msgContext.getService();
> +                    if (h == null)
> +                        throw new AxisFault("Server.NoService",
> +                                            Messages.getMessage 
> ("noService05",
> +                                                                  
> "" + msgContext.getTargetService()),
> +                                            null, null );
> +                }
> +                if( tlog.isDebugEnabled() ) {
> +                    t3=System.currentTimeMillis();
> +                }
>
> -                /*
> -                if ( msgContext.getIsOneWay() )
> -                  msgContext.setResponseMessage( null );
> -                */
> +                initSOAPConstants(msgContext);
> +                try {
> +                    h.invoke(msgContext);
> +                } catch (AxisFault ae) {
> +                    if ((h = getGlobalRequest()) != null ) {
> +                        h.onFault(msgContext);
> +                    }
> +                    throw ae;
> +                }
>
> -                // Send async response if needed
> -                WSAHandler.sendResponse( msgContext );
> +                if( tlog.isDebugEnabled() ) {
> +                    t4=System.currentTimeMillis();
> +                }
>
> -                invokeOutboundTransport(msgContext);
> +                /* Process the Global Response Chain */
> +                /***********************************/
> +                if ((h = getGlobalResponse()) != null)
> +                    h.invoke(msgContext);
>
> -                if ( tlog.isDebugEnabled() ) {
> +                /* Process the Transport Specific Response Chain */
> +                /***********************************************/
> +                if (transportChain != null) {
> +                    h = transportChain.getResponseHandler();
> +                    if (h != null)
> +                        h.invoke(msgContext);
> +                }
> +
> +                if( tlog.isDebugEnabled() ) {
>                     t5=System.currentTimeMillis();
>                     tlog.debug( "AxisServer.invoke2 " +
>                                 " preTr=" +
> @@ -424,7 +337,7 @@
>      * Extract ans store soap constants info from the envelope
>      * @param msgContext
>      * @throws AxisFault
> -     */
> +     */
>     private void initSOAPConstants(MessageContext msgContext)  
> throws AxisFault {
>         Message msg = msgContext.getRequestMessage();
>         if (msg == null)
> @@ -553,9 +466,9 @@
>                     // make sure we have.  There probably wants to be
>                     // some kind of declarative "parse point" on  
> the handler
>                     // chain instead....
> -                    Message msg = msgContext.getRequestMessage();
> -                    if (msg != null) {
> -                        msg.getSOAPEnvelope().getFirstBody();
> +                    Message rm = msgContext.getRequestMessage();
> +                    if (rm != null) {
> +                        rm.getSOAPEnvelope().getFirstBody();
>                         h = msgContext.getService();
>                     }
>                     if (h == null) {
>
>
>


Re: ant clean all-tests should work

Posted by Changshin Lee <ia...@gmail.com>.
For me, it still fails at test.saaj package test.  
samples.swa.SwaTestCase also fails when the package test is excluded.  
In case that activation.jar and mail.jar from Sun are used, the  
failures are removed but test.functional.FunctionalTests fails with  
the following message:

   <system-err><![CDATA[AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/} 
Server.userException
  faultSubcode:
  faultString: org.xml.sax.SAXParseException: White spaces are  
required between publicId and systemId.
  faultActor:
  faultNode:
  faultDetail:
	{http://xml.apache.org/axis/} 
stackTrace:org.xml.sax.SAXParseException: White spaces are required  
between publicId and systemId.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException 
(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown  
Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl 
(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl 
$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument 
(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at org.apache.axis.encoding.DeserializationContext.parse 
(DeserializationContext.java:227)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
	at org.apache.axis.wsa.WSAHandler.processClientResponse 
(WSAHandler.java:88)
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:42)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:1796)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:439)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:404)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:410)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:320)
	at samples.transport.tcp.AdminClient.main(AdminClient.java:53)
	at test.functional.TestTCPTransportSample.doTestDeploy 
(TestTCPTransportSample.java:50)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)

	{http://xml.apache.org/axis/}hostname:quadias

org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
	at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
	at org.apache.axis.wsa.WSAHandler.processClientResponse 
(WSAHandler.java:88)
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:42)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:1796)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:439)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:404)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:410)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:320)
	at samples.transport.tcp.AdminClient.main(AdminClient.java:53)
	at test.functional.TestTCPTransportSample.doTestDeploy 
(TestTCPTransportSample.java:50)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)
Caused by: org.xml.sax.SAXParseException: White spaces are required  
between publicId and systemId.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException 
(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown  
Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl 
(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl 
$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument 
(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at org.apache.axis.encoding.DeserializationContext.parse 
(DeserializationContext.java:227)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	... 32 more
; nested exception is:
	org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/} 
Server.generalException
  faultSubcode:
  faultString: ; nested exception is:
	org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
  faultActor:
  faultNode:
  faultDetail:
	{http://xml.apache.org/axis/}stackTrace:; nested exception is:
	org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:52)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:1796)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:439)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:404)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:410)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:320)
	at samples.transport.tcp.AdminClient.main(AdminClient.java:53)
	at test.functional.TestTCPTransportSample.doTestDeploy 
(TestTCPTransportSample.java:50)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)

	{http://xml.apache.org/axis/}hostname:quadias

; nested exception is:
	org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:52)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:1796)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:439)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:404)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:410)
	at org.apache.axis.client.AdminClient.process(AdminClient.java:320)
	at samples.transport.tcp.AdminClient.main(AdminClient.java:53)
	at test.functional.TestTCPTransportSample.doTestDeploy 
(TestTCPTransportSample.java:50)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)
AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/} 
Server.userException
  faultSubcode:
  faultString: org.xml.sax.SAXParseException: White spaces are  
required between publicId and systemId.
  faultActor:
  faultNode:
  faultDetail:
	{http://xml.apache.org/axis/} 
stackTrace:org.xml.sax.SAXParseException: White spaces are required  
between publicId and systemId.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException 
(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown  
Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl 
(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl 
$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument 
(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at org.apache.axis.encoding.DeserializationContext.parse 
(DeserializationContext.java:227)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
	at org.apache.axis.wsa.WSAHandler.processClientResponse 
(WSAHandler.java:88)
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:42)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:2473)
	at org.apache.axis.client.Call.invoke(Call.java:2396)
	at org.apache.axis.client.Call.invoke(Call.java:1816)
	at samples.transport.tcp.GetQuote.getQuote(GetQuote.java:93)
	at test.functional.TestTCPTransportSample.doTestStock 
(TestTCPTransportSample.java:62)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:108)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)

	{http://xml.apache.org/axis/}hostname:quadias

org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
	at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
	at org.apache.axis.wsa.WSAHandler.processClientResponse 
(WSAHandler.java:88)
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:42)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:2473)
	at org.apache.axis.client.Call.invoke(Call.java:2396)
	at org.apache.axis.client.Call.invoke(Call.java:1816)
	at samples.transport.tcp.GetQuote.getQuote(GetQuote.java:93)
	at test.functional.TestTCPTransportSample.doTestStock 
(TestTCPTransportSample.java:62)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:108)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)
Caused by: org.xml.sax.SAXParseException: White spaces are required  
between publicId and systemId.
	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException 
(Unknown Source)
	at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown  
Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
	at org.apache.xerces.impl.XMLScanner.scanExternalID(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl.scanDoctypeDecl 
(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl 
$PrologDispatcher.dispatch(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument 
(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at org.apache.axis.encoding.DeserializationContext.parse 
(DeserializationContext.java:227)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
	... 30 more
AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/} 
Server.generalException
  faultSubcode:
  faultString: ; nested exception is:
	org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
  faultActor:
  faultNode:
  faultDetail:
	{http://xml.apache.org/axis/}stackTrace:; nested exception is:
	org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:52)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:2473)
	at org.apache.axis.client.Call.invoke(Call.java:2396)
	at org.apache.axis.client.Call.invoke(Call.java:1816)
	at samples.transport.tcp.GetQuote.getQuote(GetQuote.java:93)
	at test.functional.TestTCPTransportSample.doTestStock 
(TestTCPTransportSample.java:62)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:108)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)

	{http://xml.apache.org/axis/}hostname:quadias

; nested exception is:
	org.xml.sax.SAXParseException: White spaces are required between  
publicId and systemId.
	at org.apache.axis.wsa.WSAHandler.invoke(WSAHandler.java:52)
	at org.apache.axis.client.AxisClient.invokeTransport(AxisClient.java: 
153)
	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:285)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2816)
	at org.apache.axis.client.Call.invoke(Call.java:2797)
	at org.apache.axis.client.Call.invoke(Call.java:2473)
	at org.apache.axis.client.Call.invoke(Call.java:2396)
	at org.apache.axis.client.Call.invoke(Call.java:1816)
	at samples.transport.tcp.GetQuote.getQuote(GetQuote.java:93)
	at test.functional.TestTCPTransportSample.doTestStock 
(TestTCPTransportSample.java:62)
	at test.functional.TestTCPTransportSample.testTCPTransportSample 
(TestTCPTransportSample.java:108)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke 
(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke 
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at junit.framework.TestCase.runTest(TestCase.java:154)
	at junit.framework.TestCase.runBare(TestCase.java:127)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run 
(JUnitTestRunner.java:297)
	at  
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch 
(JUnitTestRunner.java:672)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main 
(JUnitTestRunner.java:567)
]]>

I run clean all-tests on Mac OS X 10.4 and its JVM 1.4.2.

Thanks,

Ias

2006. 02. 09, 오전 11:26, Doug Davis 작성:

>
> everything appears to work in the trunk now  - could someone else  
> try it to make sure I'm not getting a false positive?
> thanks,
> -Doug
>
>
>
> dug@apache.org
> 02/08/2006 09:04 PM
>
> To
> axis-cvs@ws.apache.org
> cc
> Subject
> svn commit: r376147 - /webservices/axis/trunk/java/src/org/apache/ 
> axis/server/AxisServer.java
>
>
>
>
>
> Author: dug
> Date: Wed Feb  8 18:04:10 2006
> New Revision: 376147
>
> URL: http://svn.apache.org/viewcvs?rev=376147&view=rev
> Log:
> Revert AxisServer back to 01/23 version for now
>
> Modified:
>    webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java
>
> Modified: webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/src/ 
> org/apache/axis/server/AxisServer.java? 
> rev=376147&r1=376146&r2=376147&view=diff
> ====================================================================== 
> ========
> --- webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java (original)
> +++ webservices/axis/trunk/java/src/org/apache/axis/server/ 
> AxisServer.java Wed Feb  8 18:04:10 2006
> @@ -1,12 +1,12 @@
> /*
>  * Copyright 2001-2004 The Apache Software Foundation.
> - *
> + *
>  * Licensed 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.
> @@ -25,25 +25,19 @@
> import org.apache.axis.Message;
> import org.apache.axis.MessageContext;
> import org.apache.axis.SimpleTargetedChain;
> +import org.apache.axis.message.SOAPEnvelope;
> import org.apache.axis.soap.SOAPConstants;
> import org.apache.axis.client.AxisClient;
> import org.apache.axis.components.logger.LogFactory;
> import org.apache.axis.configuration.EngineConfigurationFactoryFinder;
> -import org.apache.axis.message.SOAPEnvelope;
> import org.apache.axis.utils.ClassUtils;
> import org.apache.axis.utils.Messages;
> import org.apache.commons.logging.Log;
> -import org.apache.axis.message.SOAPEnvelope;
> -import org.apache.axis.message.SOAPBodyElement;
> -import org.apache.axis.message.SOAPHeaderElement;
> -import org.apache.axis.wsa.MIHeader;
> -import org.apache.axis.wsa.WSAHandler;
>
> import java.util.Map;
> -import java.lang.reflect.Method ;
> -
> /**
>  *
> + * @author Doug Davis (dug@us.ibm.com)
>  * @author Glen Daniels (gdaniels@allaire.com)
>  */
> public class AxisServer extends AxisEngine
> @@ -54,8 +48,7 @@
>         LogFactory.getLog("org.apache.axis.TIME");
>
>     private static AxisServerFactory factory = null;
> -    private long   t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
> -
> +
>     public static AxisServer getServer(Map environment) throws  
> AxisFault
>     {
>         if (factory == null) {
> @@ -131,154 +124,13 @@
>         return clientEngine;
>     }
>
> -    public void invokeInboundTransport(MessageContext msgContext)
> -      throws Exception
> -    {
> -      /* Process the Transport Specific Request Chain */
> -      /**********************************************/
> -      String              hName          =  
> msgContext.getTransportName();
> -      Handler             h              = null ;
> -      SimpleTargetedChain transportChain = null ;
> -
> -      if (log.isDebugEnabled()) {
> -        log.debug(Messages.getMessage 
> ("transport01","AxisServer.invoke",hName));
> -        t1=System.currentTimeMillis();
> -      }
> -
> -      if ( hName != null && (h = getTransport( hName )) != null ) {
> -        if (h instanceof SimpleTargetedChain) {
> -          transportChain = (SimpleTargetedChain)h;
> -          h = transportChain.getRequestHandler();
> -          if (h != null)
> -            h.invoke(msgContext);
> -        }
> -      }
> -      // Run security
> -      // Add call to securityCode.Verify();  // dug
> -    }
> -
> -    public void invokeOutboundTransport(MessageContext msgContext)
> -      throws Exception
> -    {
> -      String              hName          =  
> msgContext.getTransportName();
> -      Handler             h              = null ;
> -      SimpleTargetedChain transportChain = null ;
> -
> -      // Run security
> -      // Add call to securityCode.protect(); // dug
> -
> -      /* Process the Transport Specific Response Chain */
> -      /***********************************************/
> -      if ( hName != null && (h = getTransport( hName )) != null ) {
> -        if (h instanceof SimpleTargetedChain) {
> -          transportChain = (SimpleTargetedChain)h;
> -          h = transportChain.getResponseHandler();
> -          if (h != null) {
> -            // add call to RM code to add piggy-backed headers
> -            // RMCode.addRMHeaders(); // Dug
> -            h.invoke(msgContext);
> -          }
> -        }
> -      }
> -    }
> -
> -    public void invokeService(MessageContext msgContext) throws  
> Exception {
> -      Handler h = null ;
> -
> -      if ( tlog.isDebugEnabled() )
> -        t2=System.currentTimeMillis();
> -
> -      try {
> -        // Run WSA logic
> -        WSAHandler.invoke( msgContext );
> -
> -        MIHeader mih = MIHeader.fromCurrentMessage();
> -
> -        if ( mih != null ) {
> -          // See if it needs to be rerouted
> -          // Dug - not yet // (new WSXHandler()).invoke 
> ( msgContext );
> -        }
> -
> -        /* Process the Global Request Chain */
> -        /**********************************/
> -        if ((h = getGlobalRequest()) != null ) {
> -          h.invoke(msgContext);
> -        }
> -
> -        /**
> -         * At this point, the service should have been set by someone
> -         * (either the originator of the MessageContext, or one of  
> the
> -         * transport or global Handlers).  If it hasn't been set, we
> -         * fault.
> -         */
> -        h = msgContext.getService();
> -        if (h == null) {
> -          // It's possible that we haven't yet parsed the
> -          // message at this point.  This is a kludge to
> -          // make sure we have.  There probably wants to be
> -          // some kind of declarative "parse point" on the handler
> -          // chain instead....
> -          Message rm = msgContext.getRequestMessage();
> -          rm.getSOAPEnvelope().getFirstBody();
> -
> -          h = msgContext.getService();
> -          if (h == null)
> -            throw new AxisFault("Server.NoService",
> -                                Messages.getMessage("noService05",
> -                                "" + msgContext.getTargetService()),
> -                                null, null );
> -        }
> -        if ( tlog.isDebugEnabled() )
> -          t3=System.currentTimeMillis();
> -
> -        SOAPEnvelope env = msgContext.getRequestMessage 
> ().getSOAPEnvelope();
> -
> -        // Only invoke the service is there's a body - sort of a hack
> -        if ( env.getFirstBody() != null ) {
> -          initSOAPConstants(msgContext);
> -          h.invoke(msgContext);
> -        }
> -
> -        // WSA logic is run first
> -        WSAHandler.invoke( msgContext );
> -
> -        if ( tlog.isDebugEnabled() )
> -          t4=System.currentTimeMillis();
> -
> -        /* Process the Global Response Chain */
> -        /***********************************/
> -        if ((h = getGlobalResponse()) != null)
> -          h.invoke(msgContext);
> -      }
> -      catch(Exception exp) {
> -        // If WSA isn't turned on then just rethrow it
> -        // Dug - fix this, it should not do this we need to make this
> -        // work even when WSA is turned on
> -        if ( MIHeader.fromRequest() == null ) throw exp ;
> -
> -        if ( !(exp instanceof AxisFault) )
> -          exp = AxisFault.makeFault( exp );
> -
> -        msgContext.setPastPivot( true );
> -        msgContext.setResponseMessage( new Message(exp) );
> -
> -        // WSA stuff
> -        WSAHandler.fixAction( msgContext );
> -        WSAHandler.invoke( msgContext );
> -
> -        /* Process the Global Response Chain */
> -        /***********************************/
> -        if ((h = getGlobalResponse()) != null)
> -          h.invoke(msgContext);
> -      }
> -    }
> -
>     /**
>      * Main routine of the AXIS server.  In short we locate the  
> appropriate
>      * handler for the desired service and invoke() it.
>      */
>     public void invoke(MessageContext msgContext) throws AxisFault {
> -        if ( tlog.isDebugEnabled() ) {
> +        long t0=0, t1=0, t2=0, t3=0, t4=0, t5=0;
> +        if( tlog.isDebugEnabled() ) {
>             t0=System.currentTimeMillis();
>         }
>
> @@ -315,23 +167,16 @@
>                         h = null ;
>                     }
>                 }
> -                if ( tlog.isDebugEnabled() ) {
> +                if( tlog.isDebugEnabled() ) {
>                     t1=System.currentTimeMillis();
>                 }
> -                if ( h != null ) {
> -                  try {
> +                if ( h != null )
>                     h.invoke(msgContext);
> -                  }
> -                  catch(Exception exp ) {
> -                    exp.printStackTrace();
> -                    throw exp ;
> -                  }
> -                }
>                 else
>                     throw new AxisFault( "Server.error",
>                                          Messages.getMessage 
> ("noHandler00", hName),
>                                          null, null );
> -                if ( tlog.isDebugEnabled() ) {
> +                if( tlog.isDebugEnabled() ) {
>                     t2=System.currentTimeMillis();
>                     tlog.debug( "AxisServer.invoke " + hName + "  
> invoke=" +
>                                 ( t2-t1 ) + " pre=" + (t1-t0 ));
> @@ -375,22 +220,90 @@
>
>                 */
>
> -                invokeInboundTransport(msgContext);
> -
> -                invokeService(msgContext);
> -                msgContext.setPastPivot( true );
> +                /* Process the Transport Specific Request Chain */
> +                /**********************************************/
> +                hName = msgContext.getTransportName();
> +                SimpleTargetedChain transportChain = null;
> +
> +                if (log.isDebugEnabled())
> +                    log.debug(Messages.getMessage("transport01",  
> "AxisServer.invoke", hName));
> +
> +                if( tlog.isDebugEnabled() ) {
> +                    t1=System.currentTimeMillis();
> +                }
> +                if ( hName != null && (h = getTransport( hName )) ! 
> = null ) {
> +                    if (h instanceof SimpleTargetedChain) {
> +                        transportChain = (SimpleTargetedChain)h;
> +                        h = transportChain.getRequestHandler();
> +                        if (h != null)
> +                            h.invoke(msgContext);
> +                    }
> +                }
> +
> +                if( tlog.isDebugEnabled() ) {
> +                    t2=System.currentTimeMillis();
> +                }
> +                /* Process the Global Request Chain */
> +                /**********************************/
> +                if ((h = getGlobalRequest()) != null ) {
> +                    h.invoke(msgContext);
> +                }
> +
> +                /**
> +                 * At this point, the service should have been set  
> by someone
> +                 * (either the originator of the MessageContext,  
> or one of the
> +                 * transport or global Handlers).  If it hasn't  
> been set, we
> +                 * fault.
> +                 */
> +                h = msgContext.getService();
> +                if (h == null) {
> +                    // It's possible that we haven't yet parsed the
> +                    // message at this point.  This is a kludge to
> +                    // make sure we have.  There probably wants to be
> +                    // some kind of declarative "parse point" on  
> the handler
> +                    // chain instead....
> +                    Message rm = msgContext.getRequestMessage();
> +                    rm.getSOAPEnvelope().getFirstBody();
> +
> +                    h = msgContext.getService();
> +                    if (h == null)
> +                        throw new AxisFault("Server.NoService",
> +                                            Messages.getMessage 
> ("noService05",
> +                                                                  
> "" + msgContext.getTargetService()),
> +                                            null, null );
> +                }
> +                if( tlog.isDebugEnabled() ) {
> +                    t3=System.currentTimeMillis();
> +                }
>
> -                /*
> -                if ( msgContext.getIsOneWay() )
> -                  msgContext.setResponseMessage( null );
> -                */
> +                initSOAPConstants(msgContext);
> +                try {
> +                    h.invoke(msgContext);
> +                } catch (AxisFault ae) {
> +                    if ((h = getGlobalRequest()) != null ) {
> +                        h.onFault(msgContext);
> +                    }
> +                    throw ae;
> +                }
>
> -                // Send async response if needed
> -                WSAHandler.sendResponse( msgContext );
> +                if( tlog.isDebugEnabled() ) {
> +                    t4=System.currentTimeMillis();
> +                }
>
> -                invokeOutboundTransport(msgContext);
> +                /* Process the Global Response Chain */
> +                /***********************************/
> +                if ((h = getGlobalResponse()) != null)
> +                    h.invoke(msgContext);
>
> -                if ( tlog.isDebugEnabled() ) {
> +                /* Process the Transport Specific Response Chain */
> +                /***********************************************/
> +                if (transportChain != null) {
> +                    h = transportChain.getResponseHandler();
> +                    if (h != null)
> +                        h.invoke(msgContext);
> +                }
> +
> +                if( tlog.isDebugEnabled() ) {
>                     t5=System.currentTimeMillis();
>                     tlog.debug( "AxisServer.invoke2 " +
>                                 " preTr=" +
> @@ -424,7 +337,7 @@
>      * Extract ans store soap constants info from the envelope
>      * @param msgContext
>      * @throws AxisFault
> -     */
> +     */
>     private void initSOAPConstants(MessageContext msgContext)  
> throws AxisFault {
>         Message msg = msgContext.getRequestMessage();
>         if (msg == null)
> @@ -553,9 +466,9 @@
>                     // make sure we have.  There probably wants to be
>                     // some kind of declarative "parse point" on  
> the handler
>                     // chain instead....
> -                    Message msg = msgContext.getRequestMessage();
> -                    if (msg != null) {
> -                        msg.getSOAPEnvelope().getFirstBody();
> +                    Message rm = msgContext.getRequestMessage();
> +                    if (rm != null) {
> +                        rm.getSOAPEnvelope().getFirstBody();
>                         h = msgContext.getService();
>                     }
>                     if (h == null) {
>
>
>