Nan, The JAX-RPC version 1.0 (JSR-101) is the final release, and the ver 1.1 is in the Maintenance Draft Review phase on JCP. Please see <http://www.jcp.org/en/jsr/detail?id=101>. (Additionally, JAX-RPC 2.0 (JSR-224) has already launched.)
That's certainly true, if you're using the words of 'soap handler' with a view toward 'SOAP Message Handlers' in the JAX-RPC specification. In addition, Axis also has an Axis specific handler-architecture as an incompliance with the spec. That's a difficulty of the 'handler'... On the other hand, in fact, you're using a .Net server as the end-point at this time. Do you want to implement your program as a JAX-RPC compliant client strictly ? Sure, the portability of the code might be better than the Axis original ... -- Toshi <[EMAIL PROTECTED]> On Wed, 15 Oct 2003, Nan Xiong wrote: > Great Toshi! Thanks so much, that explains it! Aagain, I guess > the soap handler will be a more standard way to access the soap > header, correct? > Can you confirm? > Nan > > > -----Original Message----- > > From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, October 14, 2003 11:59 PM > > To: [EMAIL PROTECTED] > > Subject: RE: Stub.getHeader(namespace, partname) in axis1.1 > > > > Nan, > > > > Umm..., you mean the headers.size() equals to zero. > > > > It seems the difference is from the modification on > > "org/apache/axis/wsdl/toJava/JavaStubWriter.java". > > > > Here is the log; > > [It may affect Axis 1.1 final] > > .........*.........*.........*.........*.........*.........* > > Revision 1.114 / Fri Apr 11 12:21:24 2003 UTC > > Changes since 1.113: +0 -2 lines > > > > deprecated Stub.getResponseHeaders() and removed code for that > > method so that response headers are not automatically reflected > > back into the global header list for the Stub. The method will > > remain in the code because pre-1.1 stubs will reference the > > method. Updated the stub writer to not generate files referencing > > getResponseHeaders(). > > .........*.........*.........*.........*.........*.........* > > > > [It may affect the nightly build (i.e. the current code)] > > .........*.........*.........*.........*.........*.........* > > Revision 1.31 / Thu Aug 7 20:38:22 2003 UTC > > Changes since 1.30: +39 -1 lines > > > > Add back in the ability to get response SOAP headers via the Stub. > > Add a test case to make sure it works. > > > > This was removed in April 2003 to fix the problem where response > > headers would be placed in the same place as request headers. > > The solution to that went (way) too far, and in Axis 1.1, you can > > only get response headers if you have the Call object, which you > > can get from the Service object, which you *can't* get from the > > Stub object. > > > > Solution is to add 2 new Stub APIs: > > public SOAPHeaderElement[] getResponseHeaders() > > public SOAPHeaderElement getResponseHeader > > (String namespace, String partName) > > > > This makes it explicit that the response headers are separate from > > the request headers. > > .........*.........*.........*.........*.........*.........* > > > > You'd better use the latest code, if you want to touch > > the headers from your stub - apologies for the detour. > > > > -- > > Toshi <[EMAIL PROTECTED]> > > > > -----Original Message----- > > From: Nan Xiong [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, October 15, 2003 1:35 PM > > To: [EMAIL PROTECTED] > > Subject: RE: Stub.getHeader(namespace, partname) in axis1.1 > > > > Toshi, > > > > I dont think the problem is the namespace, since stub.getHeaders() > > returns 0 size array in axis1.1... so basically somehow, the headers > > are not in stub anymore in axis1.1. > > do you have more pointers where problem may be? > > > > thanks > > Nan > > > > > -----Original Message----- > > > From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED] > > > Sent: Tuesday, October 14, 2003 8:36 PM > > > To: [EMAIL PROTECTED] > > > Subject: RE: Stub.getHeader(namespace, partname) in axis1.1 > > > > > > Nan, > > > > > > Thank you for sending the response message. > > > I think this is not an intentional behavior. The stub.getHeader() > > > has never changed between 1.1 RC2 and 1.1 final, and the code is > > > as follows; > > > > > > public SOAPHeaderElement getHeader(String namespace,String > > partName){ > > > for(int i=0;i<headers.size();i++) { > > > SOAPHeaderElement header = (SOAPHeaderElement)headers.get(i); > > > if(header.getNamespaceURI().equals(namespace) && > > > header.getName().equals(partName)) > > > return header; > > > } > > > return null; > > > } > > > > > > Please pay attention to the code - > > > "header.getNamespaceURI().equals(namespace)". > > > > > > If the value of header.getNamespaceURI() doesn't equal to > > > the namespace what you passed, you should get 'null'. > > > That's a namespace issue, as I guessed. > > > You're lucky. You have a chance to submit a patch, if you > > > can debug the code. Please. :-) > > > > > > -- > > > Toshi <[EMAIL PROTECTED]> > > > > > > -----Original Message----- > > > From: Nan Xiong [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, October 15, 2003 11:12 AM > > > To: [EMAIL PROTECTED] > > > Subject: RE: Stub.getHeader(namespace, partname) in axis1.1 > > > > > > Toshi, > > > > > > Thanks for your reply. I'm usng .NET 1.1 (2003). > > > the soap response from .NET is: > > > > > > <?xml version="1.0" encoding="utf-8"?> > > > <soap:Envelope > > > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > > <soap:Header> > > > <SessionTokenHeader > > > xmlns="http://www.viewstar.com/webservices/2002/11"> > > > <Token> > > > VE9WXV5HS0zigKZd4oChX05hXMWSXmVswpBWWkbigJ1JSUxMTU9TUV > > > NSWFdFWlhiYmNlXV/CqmBlwq1kY2NoamZpaWp0XG5weXXCunx3wqnD > > > geKEosuGwrvCvcKzwrhsw4DCssK8wrHCv8K7w4XDiMOHw4rDhg== > > > </Token> > > > </SessionTokenHeader> > > > </soap:Header> > > > <soap:Body> > > > <LoginResponse > > > xmlns="http://www.viewstar.com/webservices/2002/11"> > > > <LoginResult>true</LoginResult> > > > </LoginResponse> > > > </soap:Body> > > > </soap:Envelope> > > > > > > I'm accessing header from Stub as following: > > > > > > stub.getHeader("http://www.viewstar.com/webservices/2002/11", > > > "SessionTokenHeader"); > > > > > > the above call returns null in axis1.1, but returns > > correctly in axis > > > 1.1 RC2, against the same .NET service. > > > > > > I'm able to work around it using client side handler, but I > > would like > > > to know whether this is intentionally disabled? Will the > > soap handler > > > be a perfered way in terms of compliance to jaxrpc spec. > > > > > > Thanks > > > Nan > > > > > > > -----Original Message----- > > > > From: Toshiyuki Kimura [mailto:[EMAIL PROTECTED] > > > > Sent: Tuesday, October 14, 2003 6:49 PM > > > > To: [EMAIL PROTECTED] > > > > Subject: Re: Stub.getHeader(namespace, partname) in axis1.1 > > > > > > > > Nan, > > > > > > > > I guess that it might be related to a change of handling > > > > for namespace between RC2 and 1.1 final. A couple of days > > > > before, I've met an interop issue - using Axis 1.1 final as > > > > the server and .Net(InfoPath 2003) as the client. > > > > > > > > Did you snoop the messages ? What's the version of .Net ? > > > > Could you post your request/response messages and its WSDL > > > > files for both using 1.1 RC2 and 1.1 final ? > > > > > > > > -- > > > > Toshi <[EMAIL PROTECTED]> > > > > > > > > -----Original Message----- > > > > From: Nan Xiong [mailto:[EMAIL PROTECTED] > > > > Sent: Wednesday, October 15, 2003 5:46 AM > > > > To: [EMAIL PROTECTED] > > > > Subject: Stub.getHeader(namespace, partname) in axis1.1 > > > > > > > > Hello, > > > > > > > > I have a .NET web services that passes session id (a string) > > > > in the soap header, we were able to use Stub.getHeader(...) > > > > and Stub.setHeader() to make axis client talking to the .NET > > > > services using axis1.1 RC2, however, in axis1.1 final release, > > > > getHeader returns null. Anybody has the same problem? > > > > Can someone confirm this is a bug? or intentionally disabled? > > > > Whats the alternatives to access the header? (client handler?) > > > > > > > > Thanks in advance > > > > Nan > > > > > >
