Re: How to disable Certification validation in HTTPS
Thankx Mark. This is what i reqd. Now it is working. Great job. - Original Message - From: Priest, Mark To: 'axis-user@ws.apache.org' Sent: Friday, April 08, 2005 7:31 PM Subject: RE: How to disable Certification validation in HTTPS Did you check the wiki? Here is what you are looking for I think: http://wiki.apache.org/ws/FrontPage/Axis/SslUnsignedCertificate -Original Message-From: venkatesh [mailto:[EMAIL PROTECTED]Sent: Friday, April 08, 2005 5:43 AMTo: axis-user@ws.apache.orgSubject: How to disable Certification validation in HTTPS Hi Users, How to disable certification validations in HTTPS. I'm using AXIS 1.2 with .NET webservice. I want to disable the certificate validation. How i have to write code for this problem.
RE: SOAP::Lite interoperability question
Thats kind of strange, because Axis and SOAP::Lite - both claiming the conformance with SOAP 1.1 and WSDL 1.1 standards and even if I understand issues related to serealization/deserealization of complex types as hashrefs , but still, the passing around some array of strings or even two strings should be straightforward ( actualy the client written in Python works without any problems with the same SOAP::Lite service). --Maxim --> -Original Message- --> From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] --> Sent: Friday, April 08, 2005 5:04 PM --> To: axis-user@ws.apache.org --> Subject: Re: SOAP::Lite interoperability question --> --> --> Ah. Well, you see, that's the problem. SOAP::Lite is generating a --> message that isn't described by the WSDL. Based on the WSDL, Axis is --> expecting the messages to contain elements called and --> . (SOAP permits the server to generate generic elements, but --> if it does, it should specify those generic elements in the WSDL --> definition.) --> --> When you say that the names are generated on the fly, does that mean --> that they might be different every time you invoke the service? That --> doesn't really make any sense. Otherwise no one would ever be able to --> interoperate with SOAP::Lite. --> --> Either you need to convince SOAP::Lite to generate messages that --> correspond to the WSDL, or you need to modify the WSDL to correspond --> to what SOAP:Lite generates. --> --> Anne --> --> On Apr 8, 2005 5:27 PM, Maxim Grigoriev <[EMAIL PROTECTED]> wrote: --> > Those names are generated on fly by SOAP::Lite. The --> corresponding WSDL ( --> > created by SOAEditor ) --> > describes it as: --> > --> > --> > --> > --> > - --> > below is part of debugging info from axis client when it parses the --> > response from the SOAP::Lite server ( sorry but its a long listing): --> > -- --> > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; --> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http: --> > //www.w3.org/2001/XMLSchema-instance"> > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; --> > xmlns:ns1="lsui">test --> > - HTTP/1.1 200 OK --> > - Date Fri, 08 Apr 2005 19:47:05 GMT --> > - Server Apache/2.0.53 (Unix) mod_perl/1.99_09 Perl/v5.8.0 --> mod_ssl/2.0.53 --> > OpenSSL/0.9.7a --> > - SOAPServer SOAP::Lite/Perl/0.65_3 --> > - Content-Length 554 --> > - Connection close --> > - Content-Type text/xml; charset=utf-8 --> > - Enter: SOAPPart ctor(FORM_INPUTSTREAM) --> > - org.apache.axis.i18n.resource::handleGetObject(setMsgForm) --> > - Setting current message form to: FORM_INPUTSTREAM --> (currentMessage is now --> > org.apache.axis.transport.http.SocketInputStream) --> > - Exit: SOAPPart ctor() --> > - org.apache.axis.i18n.resource::handleGetObject(xmlRecd00) --> > - --> > XML received: --> > - --- --> > - Enter: SOAPPart::getAsSOAPEnvelope() --> > - org.apache.axis.i18n.resource::handleGetObject(currForm) --> > - current form is FORM_INPUTSTREAM --> > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) --> > - Pushing handler [EMAIL PROTECTED] --> > - Enter: DeserializationContext::startPrefixMapping(xsi, --> > http://www.w3.org/2001/XMLSchema-instance) --> > - NSPush (32) --> > - NSPush (32) --> > - Exit: DeserializationContext::startPrefixMapping() --> > - Enter: DeserializationContext::startPrefixMapping(soapenc, --> > http://schemas.xmlsoap.org/soap/encoding/) --> > - NSPush (32) --> > - Exit: DeserializationContext::startPrefixMapping() --> > - Enter: DeserializationContext::startPrefixMapping(xsd, --> > http://www.w3.org/2001/XMLSchema) --> > - NSPush (32) --> > - Exit: DeserializationContext::startPrefixMapping() --> > - Enter: DeserializationContext::startPrefixMapping(soap, --> > http://schemas.xmlsoap.org/soap/envelope/) --> > - NSPush (32) --> > - Exit: DeserializationContext::startPrefixMapping() --> > - Enter: --> > --> DeserializationContext::startElement(http://schemas.xmlsoap.org/ --> soap/envelop --> > e/, Envelope) --> > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) --> > - Pushing handler [EMAIL PROTECTED] --> > - Pushing element Envelope --> > - Exit: DeserializationContext::startElement() --> > - Enter: --> > --> DeserializationContext::startElement(http://schemas.xmlsoap.org/ --> soap/envelop --> > e/, Body) --> > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) --> > - Pushing handler [EMAIL PROTECTED] --> > - org.apache.axis.i18n.resource::handleGetObject(newElem00) --> > - New MessageElement ([EMAIL PROTECTED]) named --> > {soap}Body --> > - Pushing element Body --> > - NSPush (32) --> > - Exit: DeserializationContext::startElement() --> > - Enter: DeserializationContext::startPrefixMapping(namesp1, lsui) --> > - NSPush (32) --> > - NSPush (32) --> > - Exit: DeserializationContext::startPrefi
RE: Which is a better approach to avoid polymorphism and inherita nce
The internal representation the ContentRealization contains the full Content model so it knows the type. When I modeled the same thing in WSDL I ran into cyclic loop problem at the time of serialization as Content contained ContentRealization and that again contained Content and so on. To overcome that issue I replaced the full Content model with an Id in the API version of the model. But now I face a different problem. May be I chose a wrong way to solve that issue. To answer your question the ContentRealization in WSDL doesn't contain the content type but I can add it. This would be similar to the second approach I suggested in my earlier mail. Combine all the fields from all the types and create one model with an additional field that tells "Type" (Program/Commercial). Thanks Dheeraj -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 3:06 PM To: axis-user@ws.apache.org Subject: Re: Which is a better approach to avoid polymorphism and inherita nce Sorry -- I mistyped... Does the ContentRealization indicate the content type? Anne On Apr 8, 2005 5:56 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > Anne, > > The ContentRealization do have an Id. Each "Content" contains an array > of ContentRealization and each ContentRealization refers to its parent > Content with an Id (Please note this Id can be for a Content which is > different from the one that contains it). So my problem is that if the > client is going to generate client side classes using the WSDL then > the findByXXX() methods have to know what type of class to return > ProgramContent or CommercialContent. I have to specify the return type > as output message of my operations in WSDL. > > Even there are multiple implementations of ContentRealization so while > defining the "Content" I have to somehow specify the type of the array > to tell which type of ContentRealization it is. > > 0..n > Content >ContentRealization > >ContentRealization > ^ > | > | > --- > ^ ^ > | | > | 0..n | > > ContentRealizationType1---ContentRealizationType2 > > Basically I have to flatten out the whole object model into an XML > schema. That includes handling inheritance, polymorphism, cyclic > loops. > > Thanks > > Dheeraj > > > -Original Message- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > Sent: Friday, April 08, 2005 4:05 PM > To: Hittesdorf,Michael > Subject: Re: Which is a better approach to avoid polymorphism and > inheritance > > Nice idea, but you should avoid groups. > > Could you put an Id attribute into the ContentRealization type? That > way the client knows ahead of time what type to request. > > Anne > > On Apr 8, 2005 4:14 PM, Dheeraj,Soti <[EMAIL PROTECTED]> > wrote: > Anne, > > Thanks for getting back to me. > > I also like the first approach (because of clarity) but it is going to > make the life of the clients pretty difficult. E.g. I have another > complex type "ContentRealization" that keeps a reference to the parent > "Content (Program/Commercial)" with an Id. Now the client gets hold of > this "ContentRealization" and wants to fetch the details of the > "Content" associated with it. At this point it might not even know > that whether this Id is for a ProgramContent or a CommercialContent so > which find method he'll use. > findProgramContentById() or findCommercialContentById() > > I feel that I didn't explained the second approach well. > > ProgramContent has fields F1, F2, F3 > CommercialContent has fields F1, F2 and F4 > > So I'll create a new APIContent with fields F1, F2, F3, F4, Type. I'll > define the type as an enumeration of Program and Commercial in the > WSDL. So the client will populate the appropriate fields in the model > based on the "type" and create the content using a > createContent(APIContent). Based on the "type" the service layer can > construct the appropriate internal model. The client can just issue > findXXX() commands and the service layer will return the APIContent with the > proper type set. > > I thought of using xsd:anyType also but I read at some places that the > implementation of this is optional as per the specification and I have > to make sure that the service is interoperable. > > Thanks > > Dheeraj > > > -Original Message- > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > Sent: Friday, April 08, 2005 2:49 PM > > To: axis-user@ws.apache.org > > Subject: Re: Which is a better approach to avoid polymorphism and > > inheritance > > > > > Definitely go with the first a
Re: Which is a better approach to avoid polymorphism and inherita nce
Sorry -- I mistyped... Does the ContentRealization indicate the content type? Anne On Apr 8, 2005 5:56 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > Anne, > > The ContentRealization do have an Id. Each "Content" contains an array of > ContentRealization and each ContentRealization refers to its parent Content > with > an Id (Please note this Id can be for a Content which is different from the > one > that contains it). So my problem is that if the client is going to generate > client side classes using the WSDL then the findByXXX() methods have to know > what type of class to return ProgramContent or CommercialContent. I have to > specify the return type as output message of my operations in WSDL. > > Even there are multiple implementations of ContentRealization so while > defining > the "Content" I have to somehow specify the type of the array to tell which > type > of ContentRealization it is. > > 0..n > Content >ContentRealization > >ContentRealization > ^ > | > | > --- > ^ ^ > | | > | 0..n | > ContentRealizationType1---ContentRealizationType2 > > Basically I have to flatten out the whole object model into an XML schema. > That > includes handling inheritance, polymorphism, cyclic loops. > > Thanks > > Dheeraj > > > -Original Message- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > Sent: Friday, April 08, 2005 4:05 PM > To: Hittesdorf,Michael > Subject: Re: Which is a better approach to avoid polymorphism and inheritance > > Nice idea, but you should avoid groups. > > Could you put an Id attribute into the ContentRealization type? That way the > client knows ahead of time what type to request. > > Anne > > On Apr 8, 2005 4:14 PM, Dheeraj,Soti <[EMAIL PROTECTED]> > wrote: > Anne, > > Thanks for getting back to me. > > I also like the first approach (because of clarity) but it is going to make > the > life of the clients pretty difficult. E.g. I have another complex type > "ContentRealization" that keeps a reference to the parent "Content > (Program/Commercial)" with an Id. Now the client gets hold of this > "ContentRealization" and wants to fetch the details of the "Content" > associated > with it. At this point it might not even know that whether this Id is for a > ProgramContent or a CommercialContent so which find method he'll use. > findProgramContentById() or findCommercialContentById() > > I feel that I didn't explained the second approach well. > > ProgramContent has fields F1, F2, F3 > CommercialContent has fields F1, F2 and F4 > > So I'll create a new APIContent with fields F1, F2, F3, F4, Type. I'll define > the type as an enumeration of Program and Commercial in the WSDL. So the > client > will populate the appropriate fields in the model based on the "type" and > create > the content using a createContent(APIContent). Based on the "type" the service > layer can construct the appropriate internal model. The client can just issue > findXXX() commands and the service layer will return the APIContent with the > proper type set. > > I thought of using xsd:anyType also but I read at some places that the > implementation of this is optional as per the specification and I have to make > sure that the service is interoperable. > > Thanks > > Dheeraj > > > -Original Message- > > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > > Sent: Friday, April 08, 2005 2:49 PM > > To: axis-user@ws.apache.org > > Subject: Re: Which is a better approach to avoid polymorphism and > > inheritance > > > > > Definitely go with the first approach. JAX-RPC does not require > > support for , and very few products support it. > > > > > Anne > > > > > On Apr 6, 2005 4:36 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > > > > > > > > > Hi, > > > > > > I have class structure like as shown below. I am using doc/literal > > wrapped > > > style and I don't want to expose concepts like polymorphism, > > inheritance and > > > overloading in my service methods. There are two ways to handle > this: > > > Define two different complex elements for each type of content. The > > > advantage is its very clear and simple. The disadvantage is that > there > > are > > > many calls like findById, findByHouseId, findByName etc. So I'll end > > up > > > writing duplicate set of calls for each type of content Define a > > > single complex element with union of the fields from both > and > > > introduce a field to store type. The advantage is that I only need > > single > > > set of calls. The disadvantage is the additional type. There is a > > saying > > > that "Adding type means kil
Re: SOAP::Lite interoperability question
Ah. Well, you see, that's the problem. SOAP::Lite is generating a message that isn't described by the WSDL. Based on the WSDL, Axis is expecting the messages to contain elements called and . (SOAP permits the server to generate generic elements, but if it does, it should specify those generic elements in the WSDL definition.) When you say that the names are generated on the fly, does that mean that they might be different every time you invoke the service? That doesn't really make any sense. Otherwise no one would ever be able to interoperate with SOAP::Lite. Either you need to convince SOAP::Lite to generate messages that correspond to the WSDL, or you need to modify the WSDL to correspond to what SOAP:Lite generates. Anne On Apr 8, 2005 5:27 PM, Maxim Grigoriev <[EMAIL PROTECTED]> wrote: > Those names are generated on fly by SOAP::Lite. The corresponding WSDL ( > created by SOAEditor ) > describes it as: > > > > > - > below is part of debugging info from axis client when it parses the > response from the SOAP::Lite server ( sorry but its a long listing): > -- > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http: > //www.w3.org/2001/XMLSchema-instance"> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; > xmlns:ns1="lsui">test > - HTTP/1.1 200 OK > - Date Fri, 08 Apr 2005 19:47:05 GMT > - Server Apache/2.0.53 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.53 > OpenSSL/0.9.7a > - SOAPServer SOAP::Lite/Perl/0.65_3 > - Content-Length 554 > - Connection close > - Content-Type text/xml; charset=utf-8 > - Enter: SOAPPart ctor(FORM_INPUTSTREAM) > - org.apache.axis.i18n.resource::handleGetObject(setMsgForm) > - Setting current message form to: FORM_INPUTSTREAM (currentMessage is now > org.apache.axis.transport.http.SocketInputStream) > - Exit: SOAPPart ctor() > - org.apache.axis.i18n.resource::handleGetObject(xmlRecd00) > - > XML received: > - --- > - Enter: SOAPPart::getAsSOAPEnvelope() > - org.apache.axis.i18n.resource::handleGetObject(currForm) > - current form is FORM_INPUTSTREAM > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Enter: DeserializationContext::startPrefixMapping(xsi, > http://www.w3.org/2001/XMLSchema-instance) > - NSPush (32) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startPrefixMapping(soapenc, > http://schemas.xmlsoap.org/soap/encoding/) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startPrefixMapping(xsd, > http://www.w3.org/2001/XMLSchema) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startPrefixMapping(soap, > http://schemas.xmlsoap.org/soap/envelope/) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: > DeserializationContext::startElement(http://schemas.xmlsoap.org/soap/envelop > e/, Envelope) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Pushing element Envelope > - Exit: DeserializationContext::startElement() > - Enter: > DeserializationContext::startElement(http://schemas.xmlsoap.org/soap/envelop > e/, Body) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(newElem00) > - New MessageElement ([EMAIL PROTECTED]) named > {soap}Body > - Pushing element Body > - NSPush (32) > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::startPrefixMapping(namesp1, lsui) > - NSPush (32) > - NSPush (32) > - Exit: DeserializationContext::startPrefixMapping() > - Enter: DeserializationContext::startElement(lsui, sayHelloResponse) > - Enter: BodyBuilder::onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(newElem00) > - New MessageElement ([EMAIL PROTECTED]) named > {namesp1}sayHelloResponse > - Exit: BodyBuilder::onStartChild() > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - Pushing element sayHelloResponse > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::startElement(, s-gensym3) > - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) > - Pushing handler [EMAIL PROTECTED] > - org.apache.axis.i18n.resource::handleGetObject(newElem00) > - New MessageElement ([EMAIL PROTECTED]) named > {}s-gensym3 > - xsi:type = 'xsd:string' > - Pushing element s-gensym3 > - NSPush (32) > - Exit: DeserializationContext::startElement() > - Enter: DeserializationContext::endElement(, s-gensym3) > - org.apache.axis.i18n.resource::handleGetObject(popHandler00) > - Popping handler [EMAIL PROTECTED
RE: Which is a better approach to avoid polymorphism and inherita nce
Anne, The ContentRealization do have an Id. Each "Content" contains an array of ContentRealization and each ContentRealization refers to its parent Content with an Id (Please note this Id can be for a Content which is different from the one that contains it). So my problem is that if the client is going to generate client side classes using the WSDL then the findByXXX() methods have to know what type of class to return ProgramContent or CommercialContent. I have to specify the return type as output message of my operations in WSDL. Even there are multiple implementations of ContentRealization so while defining the "Content" I have to somehow specify the type of the array to tell which type of ContentRealization it is. 0..n Content >ContentRealization ContentRealization ^ | | --- ^ ^ | | | 0..n | ContentRealizationType1---ContentRealizationType2 Basically I have to flatten out the whole object model into an XML schema. That includes handling inheritance, polymorphism, cyclic loops. Thanks Dheeraj -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 4:05 PM To: Hittesdorf,Michael Subject: Re: Which is a better approach to avoid polymorphism and inheritance Nice idea, but you should avoid groups. Could you put an Id attribute into the ContentRealization type? That way the client knows ahead of time what type to request. Anne On Apr 8, 2005 4:14 PM, Dheeraj,Soti <[EMAIL PROTECTED]> wrote: Anne, Thanks for getting back to me. I also like the first approach (because of clarity) but it is going to make the life of the clients pretty difficult. E.g. I have another complex type "ContentRealization" that keeps a reference to the parent "Content (Program/Commercial)" with an Id. Now the client gets hold of this "ContentRealization" and wants to fetch the details of the "Content" associated with it. At this point it might not even know that whether this Id is for a ProgramContent or a CommercialContent so which find method he'll use. findProgramContentById() or findCommercialContentById() I feel that I didn't explained the second approach well. ProgramContent has fields F1, F2, F3 CommercialContent has fields F1, F2 and F4 So I'll create a new APIContent with fields F1, F2, F3, F4, Type. I'll define the type as an enumeration of Program and Commercial in the WSDL. So the client will populate the appropriate fields in the model based on the "type" and create the content using a createContent(APIContent). Based on the "type" the service layer can construct the appropriate internal model. The client can just issue findXXX() commands and the service layer will return the APIContent with the proper type set. I thought of using xsd:anyType also but I read at some places that the implementation of this is optional as per the specification and I have to make sure that the service is interoperable. Thanks Dheeraj > -Original Message- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > Sent: Friday, April 08, 2005 2:49 PM > To: axis-user@ws.apache.org > Subject: Re: Which is a better approach to avoid polymorphism and > inheritance > > Definitely go with the first approach. JAX-RPC does not require > support for , and very few products support it. > > Anne > > On Apr 6, 2005 4:36 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > > > > > > Hi, > > > > I have class structure like as shown below. I am using doc/literal > wrapped > > style and I don't want to expose concepts like polymorphism, > inheritance and > > overloading in my service methods. There are two ways to handle this: > > Define two different complex elements for each type of content. The > > advantage is its very clear and simple. The disadvantage is that there > are > > many calls like findById, findByHouseId, findByName etc. So I'll end > up > > writing duplicate set of calls for each type of content Define a > > single complex element with union of the fields from both and > > introduce a field to store type. The advantage is that I only need > single > > set of calls. The disadvantage is the additional type. There is a > saying > > that "Adding type means killing your object". > > > > > > I understand that this is not really axis related question but I will > highly > > appreciate if some would like to share his experience with me. > > > > Thanks > > > > Dheeraj Soti > > > > > > Content > > | > >- > >| | > > C
RE: Document style web services
Hello all. I've been following your exchange about document style, and others... Just a question to be sure i have a sensible idea of web services uses... In many projects in the past, we've been making hand-made plain text protocols to build A2A exchange systems. Then, with XML, we've been doing the same to make applications talk together, generally all over the 'Internet king' HTTP network transport, first with DOM, and then with SAX. Then, XML-RPC came as a XML facility, although a bit simplistic. Now, SOAP arrives, with rich (heavy ?) features, like a promise to make applications communicate over the Internet... So... what is the real added value of SOAP for applications if you remain with the same parsing and validating problems ? Are SOAP a simple MIME/HTTP substitute ? Few years ago, when i discovered AXIS 1, as a first SOAP library, i thought that at last we've been going to get a true applications open communication mean. Later, with the first implementations hazards and interoperability issues, i've been losing a big part of my enthusiasm... Am i absolutly wrong ? I sincerly appreciate your opinions. Regards. -- Ephemeris Lappis >>> -Message d'origine- >>> De : Anne Thomas Manes [mailto:[EMAIL PROTECTED] >>> Envoyé : vendredi 8 avril 2005 22:30 >>> À : axis-user@ws.apache.org >>> Objet : Re: Document style web services >>> >>> >>> When using document/literal, you need to use the element >>> definition rather than the type definition: >>> >>> >>> >>> >>> >>> Per the JAX-RPC specification, an undefined type maps to a SOAPElement >>> object. But if you use the "message" style API, then the message maps >>> to a DOM. >>> >>> Anne >>> >>> On Apr 8, 2005 4:20 PM, Marc Lefebvre >>> <[EMAIL PROTECTED]> wrote: >>> > Actually, we do want to process arbitrary XML documents. I >>> have been leaning towards the type but am still >>> unclear as to WHAT the argument type is in the method for the >>> webservice? I have seen the suggesting of making it a >>> java.lang.Object but we would probably be dealing with some >>> class that represents our XML document. My second question is, >>> what *is* this XML Document java class type is the best to use >>> for passing to this webservices method? >>> > >>> > Your message based idea is intriguing as well. I will >>> probably spike out a variety of methods to see which fits best >>> with what we want to do. >>> > >>> > Sorry if these are obvious questions, I am new to all of this. >>> > >>> > Thanks, >>> > >>> > -Marc >>> > >>> > -Original Message- >>> > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] >>> > Sent: Friday, April 08, 2005 9:46 AM >>> > To: axis-user@ws.apache.org >>> > Subject: Re: Document style web services >>> > >>> > Actually, I don't think Marc wants to use or . >>> > You only want to use if you want to be able to process >>> > arbitrary XML documents. But from what Marc describes, I think he >>> > plans to exchange XML documents with predefined schemas. >>> > >>> > Marc, >>> > >>> > If your goal is security and interoperability, then I suggest you use >>> > the Axis "wrapped" style. It will produce a document/literal message >>> > which contains the method name and the arguments. But it also allows >>> > your Java application to work with Java objects, and Axis >>> > automatically maps the Java to the XML documents for you. >>> > >>> > If you look through the archives, you'll see that I recommend a WSDL >>> > First (tm) approach to web services. What that means is that you >>> > should start your application design by defining the XML Schema >>> > definitions of your request and response messages, then import those >>> > schemas into your WSDL document, then generating your client and >>> > server code from the WSDL. >>> > >>> > See my blog for a description of the "wrapped" style: >>> > >>> http://atmanes.blogspot.com/2005/03/wrapped-documentliteral-conv >>> ention.html >>> > >>> > Here's an example of a wrapped document/literal WSDL file: >>> > >>> > >> > targetNamespace='urn:samples/HelloWorld' >>> > xmlns:tns='urn:samples/HelloWorld' >>> > xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' >>> > xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' >>> > xmlns:xsd='http://www.w3.org/2001/XMLSchema'> >>> > >>> > >>> >>> > xmlns:types='urn:samples/HelloWorld/types'> >>> > http://schemas.xmlsoap.org/soap/http' >>> > style='document'/> >>> > >>> > >> > soapAction='urn:samples/Helloworld/hello' >>> > style='document'/> >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >> binding='tns:HelloWorldBinding'> >>> > >> location='http://your.company.com/HelloWorld/'/> >>> > >>> > >>> > >>> > >>> > Now, if in fact you don't want to use the wrapped style, and instead >
RE: Which is a better approach to avoid polymorphism and inheritance
I'm curious as to why xsd:choice groups should be avoided. Are there interoperability or Java<->XML marshalling issues? BTW, the use of a choice group is only one option anyway. Another way, it seems, that doesn't use xsd:choice follows below. It unfortunately requires a little more work on the part of the programmer and some sort of implicit processing rule such as 'if search-expression' element present, ignore search attribute and value, which could be both set to nil. I don't like this as much but it eliminates the xsd:choice. Anne, is this better? Thanks. -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 4:05 PM To: Hittesdorf,Michael Subject: Re: Which is a better approach to avoid polymorphism and inheritance Nice idea, but you should avoid groups. Could you put an Id attribute into the ContentRealization type? That way the client knows ahead of time what type to request. Anne On Apr 8, 2005 4:14 PM, Hittesdorf,Michael <[EMAIL PROTECTED]> wrote: > > If I understand your goal and problem correctly, I would suggesting > defining a 'SearchCriteria' type and passing it as a parameter to your > 'find' operation. It could contain a search expression or alternatively, > and more simply, just a search attribute and a search value? See below: > > > > > type="xsd:string"/> > type="xsd:string"/> > > > > > > -Original Message- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > Sent: Friday, April 08, 2005 2:49 PM > To: axis-user@ws.apache.org > Subject: Re: Which is a better approach to avoid polymorphism and > inheritance > > Definitely go with the first approach. JAX-RPC does not require > support for , and very few products support it. > > Anne > > On Apr 6, 2005 4:36 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > > > > > > Hi, > > > > I have class structure like as shown below. I am using doc/literal > wrapped > > style and I don't want to expose concepts like polymorphism, > inheritance and > > overloading in my service methods. There are two ways to handle this: > > Define two different complex elements for each type of content. The > > advantage is its very clear and simple. The disadvantage is that there > are > > many calls like findById, findByHouseId, findByName etc. So I'll end > up > > writing duplicate set of calls for each type of content > > Define a single complex element with union of the fields from both and > > introduce a field to store type. The advantage is that I only need > single > > set of calls. The disadvantage is the additional type. There is a > saying > > that "Adding type means killing your object". > > > > > > I understand that this is not really axis related question but I will > highly > > appreciate if some would like to share his experience with me. > > > > Thanks > > > > Dheeraj Soti > > > > > > Content > > | > >- > >| | > > CommercialContent ProgramContent > > E-MAIL CONFIDENTIALITY NOTICE: The contents of this e-mail message and any attachments are intended solely for the > addressee(s) and may contain confidential and/or legally privileged information. If you are not the > intended recipient of this message or if this message has been addressed to you in error, please > immediately alert the sender by reply e-mail and then delete this message and any attachments. If you > are not the intended recipient, you are notified that any use, dissemination, distribution, copying, or > storage of this message or any attachment is strictly prohibited. > E-MAIL CONFIDENTIALITY NOTICE: The contents of this e-mail message and any attachments are intended solely for the addressee(s) and may contain confidential and/or legally privileged information. If you are not the intended recipient of this message or if this message has been addressed to you in error, please immediately alert the sender by reply e-mail and then delete this message and any attachments. If you are not the intended recipient, you are notified that any use, dissemination, distribution, copying, or storage of this message or any attachment is strictly prohibited.
RE: SOAP::Lite interoperability question
Those names are generated on fly by SOAP::Lite. The corresponding WSDL ( created by SOAEditor ) describes it as: - below is part of debugging info from axis client when it parses the response from the SOAP::Lite server ( sorry but its a long listing): -- http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http: //www.w3.org/2001/XMLSchema-instance">http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns1="lsui">test - HTTP/1.1 200 OK - Date Fri, 08 Apr 2005 19:47:05 GMT - Server Apache/2.0.53 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.53 OpenSSL/0.9.7a - SOAPServer SOAP::Lite/Perl/0.65_3 - Content-Length 554 - Connection close - Content-Type text/xml; charset=utf-8 - Enter: SOAPPart ctor(FORM_INPUTSTREAM) - org.apache.axis.i18n.resource::handleGetObject(setMsgForm) - Setting current message form to: FORM_INPUTSTREAM (currentMessage is now org.apache.axis.transport.http.SocketInputStream) - Exit: SOAPPart ctor() - org.apache.axis.i18n.resource::handleGetObject(xmlRecd00) - XML received: - --- - Enter: SOAPPart::getAsSOAPEnvelope() - org.apache.axis.i18n.resource::handleGetObject(currForm) - current form is FORM_INPUTSTREAM - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) - Pushing handler [EMAIL PROTECTED] - Enter: DeserializationContext::startPrefixMapping(xsi, http://www.w3.org/2001/XMLSchema-instance) - NSPush (32) - NSPush (32) - Exit: DeserializationContext::startPrefixMapping() - Enter: DeserializationContext::startPrefixMapping(soapenc, http://schemas.xmlsoap.org/soap/encoding/) - NSPush (32) - Exit: DeserializationContext::startPrefixMapping() - Enter: DeserializationContext::startPrefixMapping(xsd, http://www.w3.org/2001/XMLSchema) - NSPush (32) - Exit: DeserializationContext::startPrefixMapping() - Enter: DeserializationContext::startPrefixMapping(soap, http://schemas.xmlsoap.org/soap/envelope/) - NSPush (32) - Exit: DeserializationContext::startPrefixMapping() - Enter: DeserializationContext::startElement(http://schemas.xmlsoap.org/soap/envelop e/, Envelope) - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) - Pushing handler [EMAIL PROTECTED] - Pushing element Envelope - Exit: DeserializationContext::startElement() - Enter: DeserializationContext::startElement(http://schemas.xmlsoap.org/soap/envelop e/, Body) - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) - Pushing handler [EMAIL PROTECTED] - org.apache.axis.i18n.resource::handleGetObject(newElem00) - New MessageElement ([EMAIL PROTECTED]) named {soap}Body - Pushing element Body - NSPush (32) - Exit: DeserializationContext::startElement() - Enter: DeserializationContext::startPrefixMapping(namesp1, lsui) - NSPush (32) - NSPush (32) - Exit: DeserializationContext::startPrefixMapping() - Enter: DeserializationContext::startElement(lsui, sayHelloResponse) - Enter: BodyBuilder::onStartChild() - org.apache.axis.i18n.resource::handleGetObject(newElem00) - New MessageElement ([EMAIL PROTECTED]) named {namesp1}sayHelloResponse - Exit: BodyBuilder::onStartChild() - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) - Pushing handler [EMAIL PROTECTED] - Pushing element sayHelloResponse - Exit: DeserializationContext::startElement() - Enter: DeserializationContext::startElement(, s-gensym3) - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) - Pushing handler [EMAIL PROTECTED] - org.apache.axis.i18n.resource::handleGetObject(newElem00) - New MessageElement ([EMAIL PROTECTED]) named {}s-gensym3 - xsi:type = 'xsd:string' - Pushing element s-gensym3 - NSPush (32) - Exit: DeserializationContext::startElement() - Enter: DeserializationContext::endElement(, s-gensym3) - org.apache.axis.i18n.resource::handleGetObject(popHandler00) - Popping handler [EMAIL PROTECTED] - NSPop (32) - Popped element stack to org.apache.axis.message.RPCElement:sayHelloResponse - Exit: DeserializationContext::endElement() - Enter: DeserializationContext::startElement(, s-gensym5) - org.apache.axis.i18n.resource::handleGetObject(pushHandler00) - Pushing handler [EMAIL PROTECTED] - org.apache.axis.i18n.resource::handleGetObject(newElem00) - New MessageElement ([EMAIL PROTECTED]) named {}s-gensym5 - xsi:type = 'xsd:string' - Pushing element s-gensym5 - NSPush (32) - Exit: DeserializationContext::startElement() - Enter: DeserializationContext::endElement(, s-gensym5) - org.apache.axis.i18n.resource::handleGetObject(popHandler00) - Popping handler [EMAIL PROTECTED] - NSPop (32) - Popped element stack to org.apache.axis.message.RPCElement:sayHelloResponse - Exit: DeserializationContext::endElement() - Enter: DeserializationContext::endElement(lsui, sayHelloResponse) - org.apache.axis.i18n.resource::handleGetObject(popHandler00) - Popping handler [EMAIL PROTECTED] - NSPop (32) - Popped element stack to org.apache.ax
Re: POST HTTP/1.1
Thanks Simon. Do you happen to know if using the CommonsHTTPSender will solve the handling of multiple cookies also? http://issues.apache.org/jira/browse/AXIS-1080 Tim Simon Fell wrote: See this document for an example, it also supports digest auth http://www.devx.com/DevX/Article/21911/1763 -Original Message- From: news [mailto:[EMAIL PROTECTED] On Behalf Of Tim K. (Gmane) Sent: Friday, April 08, 2005 1:39 PM To: axis-user@ws.apache.org Subject: Re: POST HTTP/1.1 Simon, How do you reconfigure it to use CommonsHTTPSender? Do you have an example please? Also, would it be possible to use some other HTTPClient that would support digest auth, etc.? Thanks. Tim Simon Fell wrote: Change your sender config to use commonsHTTPSender instead of the default HTTPSender class. Cheers Simon -Original Message- From: Ada Lam [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 1:10 PM To: axis-user@ws.apache.org Subject: POST HTTP/1.1 Hi all, I am currently using axis 1.2 RC3. I want to send SOAP message to server via POST HTTP/1.1. However, axis is using POST HTTP/1.0. I've tried to change it by doing: call.getMessageContext().setProperty(org.apache.axis.MessageCo ntext.HTTP_TRANSPORT_VERSION, org.apache.axis.transport.http.HTTPConstants.HEADER_PROTOCOL_11); But it doesn't work. How can I change the HTTP version from 1.0 to 1.1 in axis? Thanks in advance! Regards, Ada
Re: SOAP::Lite interoperability question
What does the WSDL say? The SOAP message appears to return two strings (s-gensym3 and s-gensym5). Axis shouldn't have a problem with that. I assume the WSDL message is defined like this: If it isn't then modify the WSDL so that it does represent the expected message format. Anne On Apr 8, 2005 3:55 PM, Maxim Grigoriev <[EMAIL PROTECTED]> wrote: > Hello, > I am having a problem with getting Axis client to communicate with SOAP::Lite > server. The WSDL describes very simple service and corresponding method, it > accepts one arg and returns two > strings. The Axis client built by utilizing WSDL2Java tool doesnt see the > values , returned by > the invocation, becasue SOAP::Lite wraps every returned string into some > generic elements ( which is actualy complaint to SOAP standart) > > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xml > ns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";> sayHelloResponse xmlns:namesp1="lsui">Hello > testsecond > string se> > > So, the Axis client gets nulls instead of strings. Please help me to solve > this problem. One note though, I dont like an idea of building own > deserealizer becasue > the whole design built around concept of having one WSDL for the whole > service description ( so it used to built clients in any other language - > python, perl, java) > Thanks, > Maxim Grigoriev. > --- > FERMILAB CD/CCF/NET/DCN > >
RE: Re: POST HTTP/1.1
See this document for an example, it also supports digest auth http://www.devx.com/DevX/Article/21911/1763 > -Original Message- > From: news [mailto:[EMAIL PROTECTED] On Behalf Of Tim K. (Gmane) > Sent: Friday, April 08, 2005 1:39 PM > To: axis-user@ws.apache.org > Subject: Re: POST HTTP/1.1 > > Simon, > > How do you reconfigure it to use CommonsHTTPSender? Do you > have an example please? > > Also, would it be possible to use some other HTTPClient that > would support digest auth, etc.? > > Thanks. > > Tim > > Simon Fell wrote: > > Change your sender config to use commonsHTTPSender instead of the > > default HTTPSender class. > > > > Cheers > > Simon > > > > > >>-Original Message- > >>From: Ada Lam [mailto:[EMAIL PROTECTED] > >>Sent: Friday, April 08, 2005 1:10 PM > >>To: axis-user@ws.apache.org > >>Subject: POST HTTP/1.1 > >> > >>Hi all, > >> > >>I am currently using axis 1.2 RC3. I want to send SOAP message to > >>server via POST HTTP/1.1. However, axis is using POST HTTP/1.0. > >>I've tried to change it by doing: > >>call.getMessageContext().setProperty(org.apache.axis.MessageCo > >>ntext.HTTP_TRANSPORT_VERSION, > >>org.apache.axis.transport.http.HTTPConstants.HEADER_PROTOCOL_11); > >> > >>But it doesn't work. How can I change the HTTP version from > >>1.0 to 1.1 > >>in axis? > >> > >>Thanks in advance! > >> > >>Regards, > >> Ada > >> > >> > >> > >> > > > > > > >
Re: Logging all requests
This is repetition of my previous post but... Try WSABI... available at http://sourceforge.net/projects/wsabi4axis/ It comes with handlers to persist SOAP messages.. both request and response. The demo is available at http://demo.wsabi.org Look under "Monitor" section. --Mike Ralph Pöllath wrote: Hi, I'm using code generated by wsdl2java in my spring based app and would like to log the SOAP envelopes of all outgoing requests and their responses - basically what tcpmon does, but without running a separate process. Any ideas? Cheers, -Ralph.
Re: POST HTTP/1.1
Simon, How do you reconfigure it to use CommonsHTTPSender? Do you have an example please? Also, would it be possible to use some other HTTPClient that would support digest auth, etc.? Thanks. Tim Simon Fell wrote: Change your sender config to use commonsHTTPSender instead of the default HTTPSender class. Cheers Simon -Original Message- From: Ada Lam [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 1:10 PM To: axis-user@ws.apache.org Subject: POST HTTP/1.1 Hi all, I am currently using axis 1.2 RC3. I want to send SOAP message to server via POST HTTP/1.1. However, axis is using POST HTTP/1.0. I've tried to change it by doing: call.getMessageContext().setProperty(org.apache.axis.MessageCo ntext.HTTP_TRANSPORT_VERSION, org.apache.axis.transport.http.HTTPConstants.HEADER_PROTOCOL_11); But it doesn't work. How can I change the HTTP version from 1.0 to 1.1 in axis? Thanks in advance! Regards, Ada
Re: How to dump the raw SOAP Envelope?
Try WSABI... available at http://sourceforge.net/projects/wsabi4axis/ It comes with handlers to persist SOAP messages.. both request and response. --Mike Jin-Ha Tchoe wrote: Hi, we use Axis 1.2 Alpha with Tomcat 4.0.3 and Castor 0.95 for a SOAP-Service. Sometimes we have customers you are not accustomed to SOAP and have lots of problems using our Service. The problems range from simple typos and wrong namespaces to forgetting the SOAP-Envelope. Whenever Axis and Castor are unable to determine the right Service or (Un-)marshal the message, the most the customers can see (and therefore us) is a simple AxisFault. Unfortunately that does not help us see what exactly is going wrong. So, is there a way for Axis to dump the complete raw SOAP Envelope _before_ doing its work, so that we can something? Many thanks in advance, Jin-Ha Tchoe
Exception when deploying a service
We are using Axis running on a JBoss server. We create our WSDL and subsequently our WSDD files using the Apache tools. When I run the deploy tool on the WSDD file, it works, and there is a trailing Java Null Pointer Exception. It doesn't appear to prevent the service from operating, but it alarms customers, and I can't track it down. Google has only a few pages that contain it, and they all appear to be about other issues. Here is our tool file to run the deploy tool: set AXIS_HOME=C:\Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF @set CP=%AXIS_HOME%\lib\axis.jar @set CP=%CP%;%AXIS_HOME%\lib\wsdl4j.jar @set CP=%CP%;%AXIS_HOME%\lib\log4j-1.2.8.jar @set CP=%CP%;%AXIS_HOME%\lib\axis-ant.jar @set CP=%CP%;%AXIS_HOME%\lib\jaxrpc.jar @set CP=%CP%;%AXIS_HOME%\lib\saaj.jar @set CP=%CP%;%AXIS_HOME%\lib\commons-logging.jar @set CP=%CP%;%AXIS_HOME%\lib\commons-discovery.jar;. cd src java -cp %CP% org.apache.axis.client.AdminClient -p8060 com\hyperbolex\soa\server\deploy.wsdd cd .. pause Here is a sample output (line breaks courtesy of mail program): C:\hyperbolex\src>java -cp C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\axis.jar;C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\wsdl4j.jar;C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\log4j-1.2.8.jar;C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\axis-ant.jar;C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\jaxrpc.jar;C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\saaj.jar;C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\commons-logging.jar;C: \Progra~1\JBoss\server\default\deploy\axis.war\WEB-INF\lib\commons-discovery.jar;. org.apache.axis.client.AdminClient -p8060 com\hyperbolex\soa\server\deploy.wsdd Processing file com\hyperbolex\soa\server\deploy.wsdd Exception:: java.lang.NullPointerException Can anyone tell me what might be causing that Execption? Thanks in advance, Bret pgppMrf7Eexku.pgp Description: PGP signature
Re: Document style web services
When using document/literal, you need to use the element definition rather than the type definition: Per the JAX-RPC specification, an undefined type maps to a SOAPElement object. But if you use the "message" style API, then the message maps to a DOM. Anne On Apr 8, 2005 4:20 PM, Marc Lefebvre <[EMAIL PROTECTED]> wrote: > Actually, we do want to process arbitrary XML documents. I have been leaning > towards the type but am still unclear as to WHAT the argument > type is in the method for the webservice? I have seen the suggesting of > making it a java.lang.Object but we would probably be dealing with some class > that represents our XML document. My second question is, what *is* this XML > Document java class type is the best to use for passing to this webservices > method? > > Your message based idea is intriguing as well. I will probably spike out a > variety of methods to see which fits best with what we want to do. > > Sorry if these are obvious questions, I am new to all of this. > > Thanks, > > -Marc > > -Original Message- > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] > Sent: Friday, April 08, 2005 9:46 AM > To: axis-user@ws.apache.org > Subject: Re: Document style web services > > Actually, I don't think Marc wants to use or . > You only want to use if you want to be able to process > arbitrary XML documents. But from what Marc describes, I think he > plans to exchange XML documents with predefined schemas. > > Marc, > > If your goal is security and interoperability, then I suggest you use > the Axis "wrapped" style. It will produce a document/literal message > which contains the method name and the arguments. But it also allows > your Java application to work with Java objects, and Axis > automatically maps the Java to the XML documents for you. > > If you look through the archives, you'll see that I recommend a WSDL > First (tm) approach to web services. What that means is that you > should start your application design by defining the XML Schema > definitions of your request and response messages, then import those > schemas into your WSDL document, then generating your client and > server code from the WSDL. > > See my blog for a description of the "wrapped" style: > http://atmanes.blogspot.com/2005/03/wrapped-documentliteral-convention.html > > Here's an example of a wrapped document/literal WSDL file: > > targetNamespace='urn:samples/HelloWorld' > xmlns:tns='urn:samples/HelloWorld' > xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' > xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' > xmlns:xsd='http://www.w3.org/2001/XMLSchema'> > > > xmlns:types='urn:samples/HelloWorld/types'> > http://schemas.xmlsoap.org/soap/http' > style='document'/> > >soapAction='urn:samples/Helloworld/hello' > style='document'/> > > > > > > > > > > > > > > > > > Now, if in fact you don't want to use the wrapped style, and instead > you want complete control over the processing of your messages, then I > still recommend that you define your WSDL in exactly the same way, but > from a programming perspective, you should use the Axis "message" > style. > > Message style services can support any of the following four signatures: > > public Element [] method(Element [] bodies); > public SOAPBodyElement [] method (SOAPBodyElement [] bodies); > public Document method(Document body); > public void method(SOAPEnvelope req, SOAPEnvelope resp); > > Regards, > Anne > > On Apr 7, 2005 6:21 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > > Marc, > > > > See if the following link can help you. > > > > https://bpcatalog.dev.java.net/nonav/soa/doc-anytype/ > > > > Dheeraj > > > > -Original Message- > > From: Marc Lefebvre [mailto:[EMAIL PROTECTED] > > Sent: Thursday, April 07, 2005 1:28 PM > > To: axis-user@ws.apache.org > > Subject: Document style web services > > > > In my current project I am going to be using AXIS with TOMCAT using Java to > > develop some Webservices. Rather than using the typical RPC methods, like > > the > > examples in the documentation, we want to pass an XML Document back and > > forth > > between server and client. This is for two reasons, security, and > > interoperability with existing XML services. This XML document would have > > the > > method calls and args in body. > > > > So, the questions I have are: > > > > 1) What is the datatype of the argument and return type that represents the > > XML > > document in our Request and Response methods that we are going to expose > > through > > AXIS Web Services? > > > > 2) When generating the WSDL and WSDD, how do we specify to the utility that > > we > > are gong to be using this document style rather than the typical RPC style. > >
Re: Invoking axis 1.2rc3 webservice returning an array from .NET framework 1.1
Please see Dino's extremely informative wiki on Axis/.NET array interop: http://wiki.apache.org/ws/DotNetInteropArrays You also may need to install Eric's famous patch. See: http://marc.theaimsgroup.com/?l=axis-user&m=109587880222477&w=2 http://marc.theaimsgroup.com/?l=axis-user&m=109631383200039&w=2 http://marc.theaimsgroup.com/?l=axis-user&m=109646648222389&w=2 On Apr 7, 2005 1:13 PM, harsha senanayake <[EMAIL PROTECTED]> wrote: > Hi, > > I have been struggling to invoke a webservice method which returns any > type of array from .Net. Whenever I call a method for eg. > string[] list() found in http://127.0.0.1:8080/axis/EchoHeaders.jws > i get an error saying Unhandled Exception: > System.InvalidOperationException: There is an error in > XML document (1, 308). ---> System.InvalidOperationException: The > specified type was not recognized: name='string', > namespace='http://schemas.xmlsoap.org/soap/encoding/', at > . > > What am I doing wrong here? is there a work around for this problem? > really appreciate if someone could help me out. > > thanks. > Harsha >
RE: Document style web services
Actually, we do want to process arbitrary XML documents. I have been leaning towards the type but am still unclear as to WHAT the argument type is in the method for the webservice? I have seen the suggesting of making it a java.lang.Object but we would probably be dealing with some class that represents our XML document. My second question is, what *is* this XML Document java class type is the best to use for passing to this webservices method? Your message based idea is intriguing as well. I will probably spike out a variety of methods to see which fits best with what we want to do. Sorry if these are obvious questions, I am new to all of this. Thanks, -Marc -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 9:46 AM To: axis-user@ws.apache.org Subject: Re: Document style web services Actually, I don't think Marc wants to use or . You only want to use if you want to be able to process arbitrary XML documents. But from what Marc describes, I think he plans to exchange XML documents with predefined schemas. Marc, If your goal is security and interoperability, then I suggest you use the Axis "wrapped" style. It will produce a document/literal message which contains the method name and the arguments. But it also allows your Java application to work with Java objects, and Axis automatically maps the Java to the XML documents for you. If you look through the archives, you'll see that I recommend a WSDL First (tm) approach to web services. What that means is that you should start your application design by defining the XML Schema definitions of your request and response messages, then import those schemas into your WSDL document, then generating your client and server code from the WSDL. See my blog for a description of the "wrapped" style: http://atmanes.blogspot.com/2005/03/wrapped-documentliteral-convention.html Here's an example of a wrapped document/literal WSDL file: http://schemas.xmlsoap.org/soap/http' style='document'/> Now, if in fact you don't want to use the wrapped style, and instead you want complete control over the processing of your messages, then I still recommend that you define your WSDL in exactly the same way, but from a programming perspective, you should use the Axis "message" style. Message style services can support any of the following four signatures: public Element [] method(Element [] bodies); public SOAPBodyElement [] method (SOAPBodyElement [] bodies); public Document method(Document body); public void method(SOAPEnvelope req, SOAPEnvelope resp); Regards, Anne On Apr 7, 2005 6:21 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > Marc, > > See if the following link can help you. > > https://bpcatalog.dev.java.net/nonav/soa/doc-anytype/ > > Dheeraj > > -Original Message- > From: Marc Lefebvre [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 07, 2005 1:28 PM > To: axis-user@ws.apache.org > Subject: Document style web services > > In my current project I am going to be using AXIS with TOMCAT using Java to > develop some Webservices. Rather than using the typical RPC methods, like the > examples in the documentation, we want to pass an XML Document back and forth > between server and client. This is for two reasons, security, and > interoperability with existing XML services. This XML document would have the > method calls and args in body. > > So, the questions I have are: > > 1) What is the datatype of the argument and return type that represents the > XML > document in our Request and Response methods that we are going to expose > through > AXIS Web Services? > > 2) When generating the WSDL and WSDD, how do we specify to the utility that we > are gong to be using this document style rather than the typical RPC style. I > somewhat understand the idea of: > > > > or the use of: > > > > but HOW do we enable this mode in AXIS without tweaking the generated WSDL > file, > specifically when we use the auto generation utility: Java2WSDL and then > WSDL2Java to generate the web service stubs? > > I appreciate any advice or pointers. > > Regards, > > Marc
RE: POST HTTP/1.1
Change your sender config to use commonsHTTPSender instead of the default HTTPSender class. Cheers Simon > -Original Message- > From: Ada Lam [mailto:[EMAIL PROTECTED] > Sent: Friday, April 08, 2005 1:10 PM > To: axis-user@ws.apache.org > Subject: POST HTTP/1.1 > > Hi all, > > I am currently using axis 1.2 RC3. I want to send SOAP message to > server via POST HTTP/1.1. However, axis is using POST HTTP/1.0. > I've tried to change it by doing: > call.getMessageContext().setProperty(org.apache.axis.MessageCo > ntext.HTTP_TRANSPORT_VERSION, > org.apache.axis.transport.http.HTTPConstants.HEADER_PROTOCOL_11); > > But it doesn't work. How can I change the HTTP version from > 1.0 to 1.1 > in axis? > > Thanks in advance! > > Regards, > Ada > > > >
Xerces and SALT
Hi All, I know this may not be the right newsgroup for this question but I was confident you will know the answer to this one :-). My question was does the xerces parser handle or parse SALT tags? Does anybody know of any links where Ican get more info on parsing SALT using xerces? I would appreciate it if you can let me know as soon as possible. ThanksVijetha
RE: Which is a better approach to avoid polymorphism and inheritance
If I understand your goal and problem correctly, I would suggesting defining a 'SearchCriteria' type and passing it as a parameter to your 'find' operation. It could contain a search expression or alternatively, and more simply, just a search attribute and a search value? See below: -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 2:49 PM To: axis-user@ws.apache.org Subject: Re: Which is a better approach to avoid polymorphism and inheritance Definitely go with the first approach. JAX-RPC does not require support for , and very few products support it. Anne On Apr 6, 2005 4:36 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > > > Hi, > > I have class structure like as shown below. I am using doc/literal wrapped > style and I don't want to expose concepts like polymorphism, inheritance and > overloading in my service methods. There are two ways to handle this: > Define two different complex elements for each type of content. The > advantage is its very clear and simple. The disadvantage is that there are > many calls like findById, findByHouseId, findByName etc. So I'll end up > writing duplicate set of calls for each type of content > Define a single complex element with union of the fields from both and > introduce a field to store type. The advantage is that I only need single > set of calls. The disadvantage is the additional type. There is a saying > that "Adding type means killing your object". > > > I understand that this is not really axis related question but I will highly > appreciate if some would like to share his experience with me. > > Thanks > > Dheeraj Soti > > > Content > | >- >| | > CommercialContent ProgramContent E-MAIL CONFIDENTIALITY NOTICE: The contents of this e-mail message and any attachments are intended solely for the addressee(s) and may contain confidential and/or legally privileged information. If you are not the intended recipient of this message or if this message has been addressed to you in error, please immediately alert the sender by reply e-mail and then delete this message and any attachments. If you are not the intended recipient, you are notified that any use, dissemination, distribution, copying, or storage of this message or any attachment is strictly prohibited.
POST HTTP/1.1
Hi all, I am currently using axis 1.2 RC3. I want to send SOAP message to server via POST HTTP/1.1. However, axis is using POST HTTP/1.0. I've tried to change it by doing: call.getMessageContext().setProperty(org.apache.axis.MessageContext.HTTP_TRANSPORT_VERSION, org.apache.axis.transport.http.HTTPConstants.HEADER_PROTOCOL_11); But it doesn't work. How can I change the HTTP version from 1.0 to 1.1 in axis? Thanks in advance! Regards, Ada
RE: Which is a better approach to avoid polymorphism and inherita nce
Anne, Thanks for getting back to me. I also like the first approach (because of clarity) but it is going to make the life of the clients pretty difficult. E.g. I have another complex type "ContentRealization" that keeps a reference to the parent "Content (Program/Commercial)" with an Id. Now the client gets hold of this "ContentRealization" and wants to fetch the details of the "Content" associated with it. At this point it might not even know that whether this Id is for a ProgramContent or a CommercialContent so which find method he'll use. findProgramContentById() or findCommercialContentById() I feel that I didn't explained the second approach well. ProgramContent has fields F1, F2, F3 CommercialContent has fields F1, F2 and F4 So I'll create a new APIContent with fields F1, F2, F3, F4, Type. I'll define the type as an enumeration of Program and Commercial in the WSDL. So the client will populate the appropriate fields in the model based on the "type" and create the content using a createContent(APIContent). Based on the "type" the service layer can construct the appropriate internal model. The client can just issue findXXX() commands and the service layer will return the APIContent with the proper type set. I thought of using xsd:anyType also but I read at some places that the implementation of this is optional as per the specification and I have to make sure that the service is interoperable. Thanks Dheeraj -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 12:49 PM To: axis-user@ws.apache.org Subject: Re: Which is a better approach to avoid polymorphism and inheritance Definitely go with the first approach. JAX-RPC does not require support for , and very few products support it. Anne On Apr 6, 2005 4:36 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > > > Hi, > > I have class structure like as shown below. I am using doc/literal > wrapped style and I don't want to expose concepts like polymorphism, > inheritance and overloading in my service methods. There are two ways > to handle this: Define two different complex elements for each type of > content. The advantage is its very clear and simple. The disadvantage > is that there are many calls like findById, findByHouseId, findByName > etc. So I'll end up writing duplicate set of calls for each type of > content Define a single complex element with union of the fields from > both and introduce a field to store type. The advantage is that I only > need single set of calls. The disadvantage is the additional type. > There is a saying that "Adding type means killing your object". > > > I understand that this is not really axis related question but I will > highly appreciate if some would like to share his experience with me. > > Thanks > > Dheeraj Soti > > > Content > | >- >| | > CommercialContent ProgramContent
SOAP::Lite interoperability question
Hello, I am having a problem with getting Axis client to communicate with SOAP::Lite server. The WSDL describes very simple service and corresponding method, it accepts one arg and returns two strings. The Axis client built by utilizing WSDL2Java tool doesnt see the values , returned by the invocation, becasue SOAP::Lite wraps every returned string into some generic elements ( which is actualy complaint to SOAP standart) http://schemas.xmlsoap.org/soap/encoding/"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xml ns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>Hello testsecond string So, the Axis client gets nulls instead of strings. Please help me to solve this problem. One note though, I dont like an idea of building own deserealizer becasue the whole design built around concept of having one WSDL for the whole service description ( so it used to built clients in any other language - python, perl, java) Thanks, Maxim Grigoriev. --- FERMILAB CD/CCF/NET/DCN
Re: Which is a better approach to avoid polymorphism and inheritance
Definitely go with the first approach. JAX-RPC does not require support for , and very few products support it. Anne On Apr 6, 2005 4:36 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > > > Hi, > > I have class structure like as shown below. I am using doc/literal wrapped > style and I don't want to expose concepts like polymorphism, inheritance and > overloading in my service methods. There are two ways to handle this: > Define two different complex elements for each type of content. The > advantage is its very clear and simple. The disadvantage is that there are > many calls like findById, findByHouseId, findByName etc. So I'll end up > writing duplicate set of calls for each type of content > Define a single complex element with union of the fields from both and > introduce a field to store type. The advantage is that I only need single > set of calls. The disadvantage is the additional type. There is a saying > that "Adding type means killing your object". > > > I understand that this is not really axis related question but I will highly > appreciate if some would like to share his experience with me. > > Thanks > > Dheeraj Soti > > > Content > | >- >| | > CommercialContent ProgramContent
Re: Document style web services
Actually, I don't think Marc wants to use or . You only want to use if you want to be able to process arbitrary XML documents. But from what Marc describes, I think he plans to exchange XML documents with predefined schemas. Marc, If your goal is security and interoperability, then I suggest you use the Axis "wrapped" style. It will produce a document/literal message which contains the method name and the arguments. But it also allows your Java application to work with Java objects, and Axis automatically maps the Java to the XML documents for you. If you look through the archives, you'll see that I recommend a WSDL First (tm) approach to web services. What that means is that you should start your application design by defining the XML Schema definitions of your request and response messages, then import those schemas into your WSDL document, then generating your client and server code from the WSDL. See my blog for a description of the "wrapped" style: http://atmanes.blogspot.com/2005/03/wrapped-documentliteral-convention.html Here's an example of a wrapped document/literal WSDL file: http://schemas.xmlsoap.org/soap/http' style='document'/> Now, if in fact you don't want to use the wrapped style, and instead you want complete control over the processing of your messages, then I still recommend that you define your WSDL in exactly the same way, but from a programming perspective, you should use the Axis "message" style. Message style services can support any of the following four signatures: public Element [] method(Element [] bodies); public SOAPBodyElement [] method (SOAPBodyElement [] bodies); public Document method(Document body); public void method(SOAPEnvelope req, SOAPEnvelope resp); Regards, Anne On Apr 7, 2005 6:21 PM, Soti, Dheeraj <[EMAIL PROTECTED]> wrote: > Marc, > > See if the following link can help you. > > https://bpcatalog.dev.java.net/nonav/soa/doc-anytype/ > > Dheeraj > > -Original Message- > From: Marc Lefebvre [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 07, 2005 1:28 PM > To: axis-user@ws.apache.org > Subject: Document style web services > > In my current project I am going to be using AXIS with TOMCAT using Java to > develop some Webservices. Rather than using the typical RPC methods, like the > examples in the documentation, we want to pass an XML Document back and forth > between server and client. This is for two reasons, security, and > interoperability with existing XML services. This XML document would have the > method calls and args in body. > > So, the questions I have are: > > 1) What is the datatype of the argument and return type that represents the > XML > document in our Request and Response methods that we are going to expose > through > AXIS Web Services? > > 2) When generating the WSDL and WSDD, how do we specify to the utility that we > are gong to be using this document style rather than the typical RPC style. I > somewhat understand the idea of: > > > > or the use of: > > > > but HOW do we enable this mode in AXIS without tweaking the generated WSDL > file, > specifically when we use the auto generation utility: Java2WSDL and then > WSDL2Java to generate the web service stubs? > > I appreciate any advice or pointers. > > Regards, > > Marc
Axis, WSRP AND Jetspeed, Tomcat
We are doing a portal architecture POC. We are using Jetspeed 2 and tomcat 5.5.8. We would like to set the Jetspeed portal up as a WSRP provider. I suspect that we will need to install both Axis and WSRP to make this work. Can anyone give advice on which version of Axis to use and whether or not we will need to use an earlier version of tomcat? Thanks, Fran
RE: Axis Client (java)
Title: Axis Client (java) I have a related problem: how to get an object (customized object) back from a client call, what I need to do? Can I simply do the casting like: Person p = (Person) call.invoke(methodValues); Thanks! Richard -Original Message-From: THOMAS, JAI [AG-Contractor/1000] [mailto:[EMAIL PROTECTED]Sent: Thursday, April 07, 2005 8:58 AMTo: 'axis-user@ws.apache.org'Subject: RE: Axis Client (java) Form a qname for the object and add parameter using that: For exammple: QName qnPerson = new QName("your-namespace-here", "Person"); .. call.addParameter( "personArg", qnPerson , ParameterMode.IN ); Jai -Original Message-From: Suzy Fynes [mailto:[EMAIL PROTECTED]Sent: Thursday, April 07, 2005 5:27 AMTo: axis-user@ws.apache.orgSubject: Axis Client (java) Hi, I'm trying to create an axis client for a wsdl doc that I have. The service takes in two parameters, both objects of a type created by the server e.g. Person object which holds a person's details. So far if I was adding parameters to my I'd use the following call.addParameter("personsname", XMLType.XSD_STRING, ParameterMode.IN); if the parameter is an object and not a simple type how do I add it? Thanks Suzy
proper serialization of Object[] array ... (xsd or soapenc item types??)
I'm starting with this Java array: private final String itemString = "a string instance"; private final Integer itemInteger = new Integer("1965"); private final Float itemFloat = new Float("3.14159"); private final Boolean itemBoolean = new Boolean(true); private final Object[] arrayOfObjects = new Object[] { itemString, itemInteger, itemFloat, itemBoolean }; Using this default serialization context: SerializationContext context = new SerializationContext(writer, new MessageContext(new AxisServer())); Here is what I get: <... soapenc:arrayType="xsd:anyType[4]" xsi:type="soapenc:Array" xmlns:xsd="http://www.w3.org/2001/XMLSchema"; ...> a string instance 1965 3.14159 true <...> Is this correct? Am I supposed to get soapenc types for the array items? Per WS-I, should I get xsd types for the items? Thanks for any help, Mark
Re: Logging all requests
We use handlers to log requests. Ralph Pöllath <[EMAIL PROTECTED]To: axis-user@ws.apache.org rg> cc: Subject: Logging all requests 04/08/2005 11:39 AM Please respond to axis-user Hi, I'm using code generated by wsdl2java in my spring based app and would like to log the SOAP envelopes of all outgoing requests and their responses - basically what tcpmon does, but without running a separate process. Any ideas? Cheers, -Ralph.
RE: How to dump the raw SOAP Envelope?
I've done similar stuff through handlers both client and service. Here is some example client code: public class ClientSOAPPrintHandler extends BasicHandler { public void invoke(MessageContext ctx) throws AxisFault { System.out.println("Inside Handler"); String message = null; try { Message rmsg = ctx.getRequestMessage(); SOAPEnvelope se = rmsg.getSOAPEnvelope(); Document doc = se.getAsDocument(); org.apache.xml.security.utils.XMLUtils.outputDOM(doc.getDocumentElement(), System.out); } catch(Exception e) { e.printStackTrace(); } } } The service side is a little different, but same concept. There is some setup to get Axis to invoke the handlers and you may need to change where the output is going. Hope this helps, Mark A. Malinoski AES/PHEAA Technical Coordinator/Web Development 717-720-2413 [EMAIL PROTECTED] "Avadhanula, Suresh " <[EMAIL PROTECTED] To do.com> , <[EMAIL PROTECTED]>, "Venkat Reddy" 04/08/2005 01:06 <[EMAIL PROTECTED]> PM cc Subject Please respond to RE: How to dump the raw SOAP [EMAIL PROTECTED] Envelope? he.org Here is the methods I wrote to marshal SOAPMessages. This would provide output similar to what you see in TCPMon. I have modified it to take any object and add it as .. in the SOAP. /** * @param object passed to create SOAPMessage */ public static String marshal(Object msg) { if (msg == null) return null; RPCElement rpcElement = new RPCElement("soapmessage"); // Structure of a SOAP Envelope is // SOAPEnvelope //--> RPCElement // ---> RPCParam * n // Create RPCParam of each ISMessage param. // Serialize. Encapuslate it with RPCElement // that contains the dummy method name. Set // RPCElement as body in SOAPEnvelope String paramName = "param" Class cl = param.getClass(); Object value = param; QName xmlTypeQName = getTypeQName(cl); // AxisEngine provides implementation of this. I have not shown it here. If you need it email me. ParameterDesc paramDesc = new ParameterDesc(); paramDesc.setQName(new QName("", paramName)); paramDesc.setTypeQName(xmlTypeQName); paramDesc.setJavaType(cl); RPCParam rpcParam = new RPCParam(paramName, value); rpcParam.setParamDesc(paramDesc); rpcElement.addParam(rpcParam); SOAPEnvelope message = new SOAPEnvelope(); message.addBodyElement(rpcElement); StringBuffer sb = new StringBuffer(); String retStr = null; try { // This is Axis Specific code to serialize SOAPEnvelope // MessageContext is used through out AxisEngine which // is used as scratchpad by different modules of Axis. // Hence it is important tha twe set the SOAPEnvelope in //
RE: How to dump the raw SOAP Envelope?
Here is the methods I wrote to marshal SOAPMessages. This would provide output similar to what you see in TCPMon. I have modified it to take any object and add it as .. in the SOAP. /** * @param object passed to create SOAPMessage */ public static String marshal(Object msg) { if (msg == null) return null; RPCElement rpcElement = new RPCElement("soapmessage"); // Structure of a SOAP Envelope is // SOAPEnvelope // --> RPCElement // ---> RPCParam * n // Create RPCParam of each ISMessage param. // Serialize. Encapuslate it with RPCElement // that contains the dummy method name. Set // RPCElement as body in SOAPEnvelope String paramName = "param" Class cl = param.getClass(); Object value = param; QName xmlTypeQName = getTypeQName(cl); // AxisEngine provides implementation of this. I have not shown it here. If you need it email me. ParameterDesc paramDesc = new ParameterDesc(); paramDesc.setQName(new QName("", paramName)); paramDesc.setTypeQName(xmlTypeQName); paramDesc.setJavaType(cl); RPCParam rpcParam = new RPCParam(paramName, value); rpcParam.setParamDesc(paramDesc); rpcElement.addParam(rpcParam); SOAPEnvelope message = new SOAPEnvelope(); message.addBodyElement(rpcElement); StringBuffer sb = new StringBuffer(); String retStr = null; try { // This is Axis Specific code to serialize SOAPEnvelope // MessageContext is used through out AxisEngine which // is used as scratchpad by different modules of Axis. // Hence it is important tha twe set the SOAPEnvelope in // message context MessageContext mc = new MessageContext(aa.getAxisEngine()); Message soapMsg = new Message(message); mc.setMessage(soapMsg); // We need to add content type header as it is used during // deserialization to unmarshal any attachements present. // Content header will specify the multipart mime header contents // along with boundry tags. sb.append(HTTPConstants.HEADER_CONTENT_TYPE).append(": "); long contentLength = soapMsg.getContentLength(); if (log.isDebugEnabled()) log.debug(" ContentLength " + contentLength); // This Call does all the magic of analyzing soap message and // any attachements to form the header String contentType = soapMsg.getContentType(mc.getSOAPConstants()); sb.append(contentType); sb.append("\r\n"); // Required CR for Content Header ByteArrayOutputStream bos = new ByteArrayOutputStream(); soapMsg.writeTo(bos); // Serialize the actual soap message along with attachments sb.append(bos.toString()); retStr = sb.toString(); // Combine content header with body and we are done if (log.isDebugEnabled()) log.debug(" Marshalled Msg is \n" + retStr); } catch (Exception e) { log.error(" Exception occured while dumping ISMessage ", e); } return retStr; } -Suresh -Original Message- From: Peter Maas [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 6:23 AM To: Venkat Reddy Cc: axis-user@ws.apache.org Subject: Re: How to dump the raw SOAP Envelope? Why don't you trace the soap message on TCP level using a tool like ngrep or ethereal? On Fri, 2005-04-08 at 16:05 +0530, Venkat Reddy wrote: > You can write a tiny logging handler to do something like - > > Transformer transformer = > TransformerFactory.newInstance().newTransformer(); > StringWriter stringWriter = new StringWriter(128); > transformer.transform(new DOMSource(env), new > StreamResult(stringWriter)); StringBuffer buffer = > stringWriter.getBuffer(); > > - venkat > > On Apr 8, 2005 3:55 PM, Jin-Ha Tchoe <[EMAIL PROTECTED]> wrote: > > Hi, > > > > we
RE: Logging all requests
Here is the methods I wrote to marshal SOAPMessages. This would provide output similar to what you see in TCPMon. I have modified it to take any object and add it as .. in the SOAP. Email me if you need any specific details about it /** * @param object passed to create SOAPMessage */ public static String marshal(Object msg) { if (msg == null) return null; RPCElement rpcElement = new RPCElement("soapmessage"); // Structure of a SOAP Envelope is // SOAPEnvelope // --> RPCElement // ---> RPCParam * n // Create RPCParam of each ISMessage param. // Serialize. Encapuslate it with RPCElement // that contains the dummy method name. Set // RPCElement as body in SOAPEnvelope String paramName = "param" Class cl = param.getClass(); Object value = param; QName xmlTypeQName = getTypeQName(cl); // AxisEngine provides implementation of this. I have not shown it here. If you need it email me. ParameterDesc paramDesc = new ParameterDesc(); paramDesc.setQName(new QName("", paramName)); paramDesc.setTypeQName(xmlTypeQName); paramDesc.setJavaType(cl); RPCParam rpcParam = new RPCParam(paramName, value); rpcParam.setParamDesc(paramDesc); rpcElement.addParam(rpcParam); SOAPEnvelope message = new SOAPEnvelope(); message.addBodyElement(rpcElement); StringBuffer sb = new StringBuffer(); String retStr = null; try { // This is Axis Specific code to serialize SOAPEnvelope // MessageContext is used through out AxisEngine which // is used as scratchpad by different modules of Axis. // Hence it is important tha twe set the SOAPEnvelope in // message context MessageContext mc = new MessageContext(aa.getAxisEngine()); Message soapMsg = new Message(message); mc.setMessage(soapMsg); // We need to add content type header as it is used during // deserialization to unmarshal any attachements present. // Content header will specify the multipart mime header contents // along with boundry tags. sb.append(HTTPConstants.HEADER_CONTENT_TYPE).append(": "); long contentLength = soapMsg.getContentLength(); if (log.isDebugEnabled()) log.debug(" ContentLength " + contentLength); // This Call does all the magic of analyzing soap message and // any attachements to form the header String contentType = soapMsg.getContentType(mc.getSOAPConstants()); sb.append(contentType); sb.append("\r\n"); // Required CR for Content Header ByteArrayOutputStream bos = new ByteArrayOutputStream(); soapMsg.writeTo(bos); // Serialize the actual soap message along with attachments sb.append(bos.toString()); retStr = sb.toString(); // Combine content header with body and we are done if (log.isDebugEnabled()) log.debug(" Marshalled Msg is \n" + retStr); } catch (Exception e) { log.error(" Exception occured while dumping ISMessage ", e); } return retStr; } -Suresh -Original Message- From: Ralph Pöllath [mailto:[EMAIL PROTECTED] Sent: Friday, April 08, 2005 11:40 AM To: axis-user@ws.apache.org Subject: Logging all requests Hi, I'm using code generated by wsdl2java in my spring based app and would like to log the SOAP envelopes of all outgoing requests and their responses - basically what tcpmon does, but without running a separate process. Any ideas? Cheers, -Ralph.
Logging all requests
Hi, I'm using code generated by wsdl2java in my spring based app and would like to log the SOAP envelopes of all outgoing requests and their responses - basically what tcpmon does, but without running a separate process. Any ideas? Cheers, -Ralph.
Java to WSDL documentation
Question: Is there a Java to WSDL documentation tool? I have not used SOAP much at all, is there a tool that will generate WSDL documentation that is generated from the original Java classes used to produce the WSDL? I did some axis-user archive searching and most of the posts are rather dated, so I am hoping for a new encouraging answer ;) In other words, if I publish my WSDL is there some means that the user of the WSDL can locate usage documentation through a reference in the WSDL? And, I hope there is some automated process that will produce the documentation from the Java classes I used to build the WSDL. Possibly a tool which inserts the WSDL tag the Java Doc text that is defined in the Java classes? Any ideas? Thanks, Jim
Re: How to dump the raw SOAP Envelope?
Hi Jin-Ha, Have you taken a look at wsabi4axis, an open source Web Services Management Platform (http://sourceforge.net/projects/wsabi4axis)? *One* of the features of wsabi4axis is the ability to persist each and every request/response for your service into a database and then view the raw envelopes via the wsabi4axis web application. You can also view the transport (most likely http) headers assoicated with the request. For a demo: 1. Goto http://demo.wsabi.org 2. Click on "Monitor" 3. Click on "Audit Logs" 4. Choose "YahooUserPingService" and a time range 5. You will see a table with client request summaries 6. Click on the timestamp for detailed view of the request/response Al Quoting Jin-Ha Tchoe <[EMAIL PROTECTED]>: > Hi, > > we use Axis 1.2 Alpha with Tomcat 4.0.3 and Castor 0.95 for a > SOAP-Service. Sometimes we have customers you are not accustomed to SOAP > and have lots of problems using our Service. The problems range from > simple typos and wrong namespaces to forgetting the SOAP-Envelope. > > Whenever Axis and Castor are unable to determine the right Service or > (Un-)marshal the message, the most the customers can see (and therefore > us) is a simple AxisFault. Unfortunately that does not help us see what > exactly is going wrong. So, is there a way for Axis to dump the complete > raw SOAP Envelope _before_ doing its work, so that we can something? > > Many thanks in advance, > > Jin-Ha Tchoe > -- > Jin-Ha Tchoe <[EMAIL PROTECTED]> > >
RE: How to disable Certification validation in HTTPS
Did you check the wiki? Here is what you are looking for I think: http://wiki.apache.org/ws/FrontPage/Axis/SslUnsignedCertificate -Original Message-From: venkatesh [mailto:[EMAIL PROTECTED]Sent: Friday, April 08, 2005 5:43 AMTo: axis-user@ws.apache.orgSubject: How to disable Certification validation in HTTPS Hi Users, How to disable certification validations in HTTPS. I'm using AXIS 1.2 with .NET webservice. I want to disable the certificate validation. How i have to write code for this problem.
Re: axis 1.2 client talking to an axis 1.1 server?
The answer is just to run the AXIS1.2RC3 WSDL2Java to create a set of 1.2 bindings. And then use those bindings with AXIS1.2RC3 Quite simple really. Stuart Barlow wrote: Does anyone have experience of an axis 1.2 client talking to an axis 1.1 server? At the moment I am getting the following error... java.lang.NoSuchFieldError: RPC at com.hummingbird.hc.dm.api.DmintsoapSoapBindingStub.(DmintsoapSoapBindingStub.java:26) at com.hummingbird.hc.dm.api.DmSystemSPIServiceLocator.getdmintsoap(DmSystemSPIServiceLocator.java:43) at com.peopledoc.jura.dmintegration.spi.impl.DmIntSOAPImpl.bindToSoapAPI(DmIntSOAPImpl.java:146) at com.peopledoc.jura.dmintegration.spi.impl.DmIntSOAPImpl.(DmIntSOAPImpl.java:72) at com.peopledoc.jura.dmintegration.spi.impl.DmSPIFactory.createDMSystemApiForConnector(DmSPIFactory.java:92) This is an AXIS 1.1 server using WSDL2Java to generate a client library. I am then running this client lib in an app server that includes AXIS 1.2 in its environment. Is this exception getting thrown by the client code? Is there a preferred strategy here? ta, Stuart -- Stuart
Re: How to dump the raw SOAP Envelope?
Hi all, thanks so far. Would the LogHandler that is supplied with Axis be sufficient for my needs? If yes, how do I configure that damn thing? I tried the following in the server-config.wsdd - Under the deployment-Tag I inserted : - then I uncommented the LogHandler-handlertag in the http-Transport so that is looks like this: I must be doing something wrong here, but I didn't find any examples on how to configure the LogHandler. Regards, Jin-Ha Tchoe Am Freitag, den 08.04.2005, 16:05 +0530 schrieb Venkat Reddy: > You can write a tiny logging handler to do something like - > > Transformer transformer = TransformerFactory.newInstance().newTransformer(); > StringWriter stringWriter = new StringWriter(128); > transformer.transform(new DOMSource(env), new StreamResult(stringWriter)); > StringBuffer buffer = stringWriter.getBuffer(); > > - venkat > > On Apr 8, 2005 3:55 PM, Jin-Ha Tchoe <[EMAIL PROTECTED]> wrote: > > Hi, > > > > we use Axis 1.2 Alpha with Tomcat 4.0.3 and Castor 0.95 for a > > SOAP-Service. Sometimes we have customers you are not accustomed to SOAP > > and have lots of problems using our Service. The problems range from > > simple typos and wrong namespaces to forgetting the SOAP-Envelope. > > > > Whenever Axis and Castor are unable to determine the right Service or > > (Un-)marshal the message, the most the customers can see (and therefore > > us) is a simple AxisFault. Unfortunately that does not help us see what > > exactly is going wrong. So, is there a way for Axis to dump the complete > > raw SOAP Envelope _before_ doing its work, so that we can something? > > > > Many thanks in advance, > > > > Jin-Ha Tchoe > > -- > > Jin-Ha Tchoe <[EMAIL PROTECTED]> > > > > -- Jin-Ha Tchoe <[EMAIL PROTECTED]>
RE: sending very large attachments
Thanks.. This would be helpful. Cheers, Sai -Original Message- From: Mike Smorul [mailto:[EMAIL PROTECTED] Sent: 08 April 2005 14:03 To: axis-user@ws.apache.org Subject: RE: sending very large attachments Section 3.6 in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html does a better job that I could of explaining transfer codings. One difference that we did to handle large encodings was to divorce the attachments from actual message, ala no DataHandlers as parameters. Instead we send an array of filenames that correspond to the attachments. Normally, this loose coupling of attachments and parameter wouldn't be a good idea, but we didn't want to lock ourselves into using attachments for a bulk data transport, and we can verify attachments through previously passed checksums. On the client side you can set chunked encoding by setting the transport to http 1.1, and adding chunked encoding to the transfer headers Hashtable chunkedTable = new Hashtable(); chunkedTable.put(HTTPConstants.HEADER_TRANSFER_ENCODING, HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED); call.setProperty(MessageContext.HTTP_TRANSPORT_VERSION, HTTPConstants.HEADER_PROTOCOL_V11); call.setProperty(HTTPConstants.REQUEST_HEADERS,chunkedTable); call.addAttachmentPart( new DataHandler(new FileDataSource(file))); On the server side, by not including datahandlers as parameters, Axis ony reads attachments on demand. This lets us toggle the location where Axis writes the Axis*att files. MessageContext msgContext = MessageContext.getCurrentContext(); msgContext.setProperty( MessageContext.ATTACHMENTS_DIR,newPath); // causes Axis to read in rest of attachment stream Iterator iap = reqMsg.getAttachments(); -Mike On Fri, 8 Apr 2005, Sai Giddu wrote: > Mike, >Could you please elaborate more on "chunked-encoding". I'm facing similar performance issues while trying to send large data using SOAP protocol. > > Thanks, > Sai > > -Original Message- > From: Mike Smorul [mailto:[EMAIL PROTECTED] > Sent: 07 April 2005 22:52 > To: 'axis-user@ws.apache.org' > Subject: RE: sending very large attachments > > > > Most implementations tend to choke on large http transfers because they > tend to buffer the entire transmission prior to sending. Usually done > under the assumption you are transfering single web pages and not large > files. > > We've have fairly good results at sending large (>1G) attachments through > axis. This was done using chunked-encoding and redirecting the > axis attachment directory per attachment to avoid recopying data > into a final location. Although when dealing with large attachments, you > should consider implementing some type of checkpointing during the > transfer in case of failure. > > -Mike > > On Thu, 7 Apr 2005, THOMAS, JAI [AG-Contractor/1000] wrote: > >> More than Axis, it would be a problem with HTTP assuming you are using http >> transfer. >> HTTP has a limitation on size that varies slightly by implementation but >> from experience, anything over 10meg would be a problem. >> >> Jai >> >> >> >> -Original Message- >> From: Alex Milanovic [mailto:[EMAIL PROTECTED] >> Sent: Thursday, April 07, 2005 4:33 PM >> To: axis-user@ws.apache.org >> Subject: sending very large attachments >> >> >> Hi All, >> I was wondering if it would make sense to use the SOAP attachment method for >> sending very large files from one host to another over the Internet? How >> would AXIS deal with a file of 1GB in size? >> Alex >> >> >
RE: sending very large attachments
Section 3.6 in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html does a better job that I could of explaining transfer codings. One difference that we did to handle large encodings was to divorce the attachments from actual message, ala no DataHandlers as parameters. Instead we send an array of filenames that correspond to the attachments. Normally, this loose coupling of attachments and parameter wouldn't be a good idea, but we didn't want to lock ourselves into using attachments for a bulk data transport, and we can verify attachments through previously passed checksums. On the client side you can set chunked encoding by setting the transport to http 1.1, and adding chunked encoding to the transfer headers Hashtable chunkedTable = new Hashtable(); chunkedTable.put(HTTPConstants.HEADER_TRANSFER_ENCODING, HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED); call.setProperty(MessageContext.HTTP_TRANSPORT_VERSION, HTTPConstants.HEADER_PROTOCOL_V11); call.setProperty(HTTPConstants.REQUEST_HEADERS,chunkedTable); call.addAttachmentPart( new DataHandler(new FileDataSource(file))); On the server side, by not including datahandlers as parameters, Axis ony reads attachments on demand. This lets us toggle the location where Axis writes the Axis*att files. MessageContext msgContext = MessageContext.getCurrentContext(); msgContext.setProperty( MessageContext.ATTACHMENTS_DIR,newPath); // causes Axis to read in rest of attachment stream Iterator iap = reqMsg.getAttachments(); -Mike On Fri, 8 Apr 2005, Sai Giddu wrote: Mike, Could you please elaborate more on "chunked-encoding". I'm facing similar performance issues while trying to send large data using SOAP protocol. Thanks, Sai -Original Message- From: Mike Smorul [mailto:[EMAIL PROTECTED] Sent: 07 April 2005 22:52 To: 'axis-user@ws.apache.org' Subject: RE: sending very large attachments Most implementations tend to choke on large http transfers because they tend to buffer the entire transmission prior to sending. Usually done under the assumption you are transfering single web pages and not large files. We've have fairly good results at sending large (>1G) attachments through axis. This was done using chunked-encoding and redirecting the axis attachment directory per attachment to avoid recopying data into a final location. Although when dealing with large attachments, you should consider implementing some type of checkpointing during the transfer in case of failure. -Mike On Thu, 7 Apr 2005, THOMAS, JAI [AG-Contractor/1000] wrote: More than Axis, it would be a problem with HTTP assuming you are using http transfer. HTTP has a limitation on size that varies slightly by implementation but from experience, anything over 10meg would be a problem. Jai -Original Message- From: Alex Milanovic [mailto:[EMAIL PROTECTED] Sent: Thursday, April 07, 2005 4:33 PM To: axis-user@ws.apache.org Subject: sending very large attachments Hi All, I was wondering if it would make sense to use the SOAP attachment method for sending very large files from one host to another over the Internet? How would AXIS deal with a file of 1GB in size? Alex
WSDD typeMapping and WSDL
Hi all! I use Axis 1.1 as a WS provider for Java classes. The WSDL file is generated on-the-fly by Axis. I want to map java.util.Date parameters to "xsd:date" to get rid of timezone shiftings, as WiKi recommends (http://wiki.apache.org/ws/FrontPage/Axis/DotNetInterop) inside WSDL (the default mapping is "xsd:dateTime"), and placed following typeMapping under : http://www.w3.org/2001/XMLSchema"; languageSpecificType="java:java.util.Date" serializer="org.apache.axis.encoding.ser.CalendarSerializerFactory" deserializer="org.apache.axis.encoding.ser.CalendarDeserializerFactory" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> But this didn't change anything in generated WSDL. Is there any right way to do this? Looking into Axis code I found that is used for WSDL generation only if no default mapping exists, e.g. for custom types. May be latest version (1.2rc3) does it? I cannot find out because 1.2rc3 doesn't work at all with our classes. So my solution was to change JavaProvider.initServiceDesc() (just give serviceDescription the mapping from WSDD), but I don't like it beacause it will be eventually washed out by new Axis version.. And the mapping-to-WSDL still doesn't work for those elements under elements. I guess this would be useful feature, what do you think? --- With best regards, Artem Vasiliev Senior software developer DB RDC, Luxoft, IBS group of companies
Re: axis on OC4J Distributed Configuration Management?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Friday 08 April 2005 13:24, Ilias Bartolini wrote: > helps and suggestions are wolcome. > Ilias done! I've simply built manually a .war of the application deployed in Axis in my Tomcat and then deployed the .war on OC4J using the Oracle Entrprise Manager Graphical Interface. - -- /** * Reply to: ilias.bartolini(at)studio.unibo.it * ICQ# 42797710 - FeSToso n°143 - PGP Key-IDs:0x6A951A45 * http://www.brainetwork.net/homepage - https://www.universibo.unibo.it * http://www.icalx.com/html/brain79/week.php?cal=brain79.public */ -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFCVncG+CP4pmqVGkURAoucAJ4houOmGbbYu/uL94JCOgJIQ6J3mQCdFGiD hymJiq6SffBYQROOleAmmgQ= =hW9w -END PGP SIGNATURE-
Re: How to dump the raw SOAP Envelope?
On Fri, Apr 08, 2005 at 01:34:34PM +0200, Vjeran Marcinko wrote: > Hmmm... I think that any protocol wrapper library should have raw logging > available at DEBUG level. That's one thing I love about Commons HttpClient. > > -V. I would have thought so For example, in SOAPpy (a python SOAP library), it is #--- s = SOAPProxy( "http://localhost:8080/axis/EchoHeaders.jws";, "", "" ) s.config.dumpSOAPOut = 1 s.config.dumpSOAPIn = 1 #--- The last 2 lines dumps the SOAP packet. -- | mailto:[EMAIL PROTECTED] | +61 401 688 408 | How many boards would a Mongol hoard, if a Mongol hoard got bored. - Utiba Pty Ltd This message has been scanned for viruses and dangerous content by Utiba mail server and is believed to be clean.
Re: How to dump the raw SOAP Envelope?
Hmmm... I think that any protocol wrapper library should have raw logging available at DEBUG level. That's one thing I love about Commons HttpClient. -V. - Original Message - From: "Peter Maas" <[EMAIL PROTECTED]> To: "Venkat Reddy" <[EMAIL PROTECTED]> Cc: Sent: Friday, April 08, 2005 1:23 PM Subject: Re: How to dump the raw SOAP Envelope? > > Why don't you trace the soap message on TCP level using a tool like > ngrep or ethereal? > > > On Fri, 2005-04-08 at 16:05 +0530, Venkat Reddy wrote: > > You can write a tiny logging handler to do something like - > > > > Transformer transformer = TransformerFactory.newInstance().newTransformer(); > > StringWriter stringWriter = new StringWriter(128); > > transformer.transform(new DOMSource(env), new StreamResult(stringWriter)); > > StringBuffer buffer = stringWriter.getBuffer(); > > > > - venkat -- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.308 / Virus Database: 266.9.5 - Release Date: 7.4.2005
axis on OC4J Distributed Configuration Management?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 I'm using axis 1.2_RC3. Anyone has experiencies of deploing axis on a OC4J Application Server with Distributed Configuration Management? I've tried to follw theese (http://radio.weblogs.com/0132036/2003/11/16.html) instructions in my own ApplicationServer/Istance/Component, but i have no error output nor any http output from my apllication. helps and suggestions are wolcome. Ilias - -- /** * Reply to: ilias.bartolini(at)studio.unibo.it * ICQ# 42797710 - FeSToso n°143 - PGP Key-IDs:0x6A951A45 * http://www.brainetwork.net/homepage - https://www.universibo.unibo.it * http://www.icalx.com/html/brain79/week.php?cal=brain79.public */ -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFCVmnZ+CP4pmqVGkURAngoAJ9z2C1//AXJ2fAznpSDc3mMNjdfBQCfdow7 kvtuXhtKpSpP8VEsEsdxOpc= =mlaS -END PGP SIGNATURE-
Re: How to dump the raw SOAP Envelope?
Why don't you trace the soap message on TCP level using a tool like ngrep or ethereal? On Fri, 2005-04-08 at 16:05 +0530, Venkat Reddy wrote: > You can write a tiny logging handler to do something like - > > Transformer transformer = TransformerFactory.newInstance().newTransformer(); > StringWriter stringWriter = new StringWriter(128); > transformer.transform(new DOMSource(env), new StreamResult(stringWriter)); > StringBuffer buffer = stringWriter.getBuffer(); > > - venkat > > On Apr 8, 2005 3:55 PM, Jin-Ha Tchoe <[EMAIL PROTECTED]> wrote: > > Hi, > > > > we use Axis 1.2 Alpha with Tomcat 4.0.3 and Castor 0.95 for a > > SOAP-Service. Sometimes we have customers you are not accustomed to SOAP > > and have lots of problems using our Service. The problems range from > > simple typos and wrong namespaces to forgetting the SOAP-Envelope. > > > > Whenever Axis and Castor are unable to determine the right Service or > > (Un-)marshal the message, the most the customers can see (and therefore > > us) is a simple AxisFault. Unfortunately that does not help us see what > > exactly is going wrong. So, is there a way for Axis to dump the complete > > raw SOAP Envelope _before_ doing its work, so that we can something? > > > > Many thanks in advance, > > > > Jin-Ha Tchoe > > -- > > Jin-Ha Tchoe <[EMAIL PROTECTED]> > > > > > > -- Peter Maas Application Architect / Streaming Noterik Multimedia BV Prins Hendrikkade 120 1011 AM Amsterdam The Netherlands Tel: +31 (0)205929966 Fax: +31 (0)204688405 Gsm: +31 (0)616096324 Web: www.noterik.nl -- Take a look at our streaming solutions: http://www.streamedit.com/demo.html Get firefox: http://www.mozilla.org/products/firefox/ --- :wq!
RE: How to disable Certification validation in HTTPS
Why use SSL, if you disable security features ? --Ephemeris Lappis -Message d'origine-De : venkatesh [mailto:[EMAIL PROTECTED]Envoyé : vendredi 8 avril 2005 11:43À : axis-user@ws.apache.orgObjet : How to disable Certification validation in HTTPS Hi Users, How to disable certification validations in HTTPS. I'm using AXIS 1.2 with .NET webservice. I want to disable the certificate validation. How i have to write code for this problem.
Re: How to dump the raw SOAP Envelope?
You can write a tiny logging handler to do something like - Transformer transformer = TransformerFactory.newInstance().newTransformer(); StringWriter stringWriter = new StringWriter(128); transformer.transform(new DOMSource(env), new StreamResult(stringWriter)); StringBuffer buffer = stringWriter.getBuffer(); - venkat On Apr 8, 2005 3:55 PM, Jin-Ha Tchoe <[EMAIL PROTECTED]> wrote: > Hi, > > we use Axis 1.2 Alpha with Tomcat 4.0.3 and Castor 0.95 for a > SOAP-Service. Sometimes we have customers you are not accustomed to SOAP > and have lots of problems using our Service. The problems range from > simple typos and wrong namespaces to forgetting the SOAP-Envelope. > > Whenever Axis and Castor are unable to determine the right Service or > (Un-)marshal the message, the most the customers can see (and therefore > us) is a simple AxisFault. Unfortunately that does not help us see what > exactly is going wrong. So, is there a way for Axis to dump the complete > raw SOAP Envelope _before_ doing its work, so that we can something? > > Many thanks in advance, > > Jin-Ha Tchoe > -- > Jin-Ha Tchoe <[EMAIL PROTECTED]> > >
How to dump the raw SOAP Envelope?
Hi, we use Axis 1.2 Alpha with Tomcat 4.0.3 and Castor 0.95 for a SOAP-Service. Sometimes we have customers you are not accustomed to SOAP and have lots of problems using our Service. The problems range from simple typos and wrong namespaces to forgetting the SOAP-Envelope. Whenever Axis and Castor are unable to determine the right Service or (Un-)marshal the message, the most the customers can see (and therefore us) is a simple AxisFault. Unfortunately that does not help us see what exactly is going wrong. So, is there a way for Axis to dump the complete raw SOAP Envelope _before_ doing its work, so that we can something? Many thanks in advance, Jin-Ha Tchoe -- Jin-Ha Tchoe <[EMAIL PROTECTED]>
R: How to disable Certification validation in HTTPS
this should be a problem of the server (Tomcat, Apache?) not of the application (Axis or anything else) -- Ivan -Messaggio originale-Da: venkatesh [mailto:[EMAIL PROTECTED]Inviato: venerdì 8 aprile 2005 11.43A: axis-user@ws.apache.orgOggetto: How to disable Certification validation in HTTPS Hi Users, How to disable certification validations in HTTPS. I'm using AXIS 1.2 with .NET webservice. I want to disable the certificate validation. How i have to write code for this problem.
Re: How to disable Certification validation in HTTPS
venkatesh wrote: Hi Users, How to disable certification validations in HTTPS. I'm using AXIS 1.2 with .NET webservice. I want to disable the certificate validation. How i have to write code for this problem. What part of the server's certificate validation you want to disable? Jyrki
How to disable Certification validation in HTTPS
Hi Users, How to disable certification validations in HTTPS. I'm using AXIS 1.2 with .NET webservice. I want to disable the certificate validation. How i have to write code for this problem.
Interop with PHP5 SoapClient - IncompatibleClassChangeError
I'm working on a test for PHP5's Soap Client (version 5.0.3) and Apache Axis (version 1.2 RC3). I'm getting an exception: java.lang.IncompatibleClassChangeError at org.apache.axis.message.MessageElement.addTextNode(MessageElement.java: 1387) at org.apache.axis.message.SOAPHandler.addTextNode(SOAPHandler.java:148) at org.apache.axis.message.SOAPHandler.endElement(SOAPHandler.java:112) at org.apache.axis.encoding.DeserializationContext.endElement(Deserializati onContext.java:1087) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDis patcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkno wn 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(Unknown Source) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationCon text.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696) at org.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.apache.axis.server.AxisServer.initSOAPConstants(AxisServer.java: 345) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:279) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j ava:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) . at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .java:684) at java.lang.Thread.run(Thread.java:552) The java function is defined as: boolean confirmCredentials( String username, String password ) { return false; } This is something I didn't think would be difficult to process or handle. PHP is sending this request (ormatted with newlines and whitespace for easier reading): == http://schemas.xmlsoap.org/soap/envelope/"; xmlns:ns1="http://rpc.whisper.ucsc.edu"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"; SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";> sdfdsf xddsfs As you can see, the types being assigned are xsd:string... I was under the impression this would be automatically converted into Java String objects. Or is there some sort of setup I need to do for that to happen. Any suggestions are greatly appreciated. Mark
RE: sending very large attachments
Mike, Could you please elaborate more on "chunked-encoding". I'm facing similar performance issues while trying to send large data using SOAP protocol. Thanks, Sai -Original Message- From: Mike Smorul [mailto:[EMAIL PROTECTED] Sent: 07 April 2005 22:52 To: 'axis-user@ws.apache.org' Subject: RE: sending very large attachments Most implementations tend to choke on large http transfers because they tend to buffer the entire transmission prior to sending. Usually done under the assumption you are transfering single web pages and not large files. We've have fairly good results at sending large (>1G) attachments through axis. This was done using chunked-encoding and redirecting the axis attachment directory per attachment to avoid recopying data into a final location. Although when dealing with large attachments, you should consider implementing some type of checkpointing during the transfer in case of failure. -Mike On Thu, 7 Apr 2005, THOMAS, JAI [AG-Contractor/1000] wrote: > More than Axis, it would be a problem with HTTP assuming you are using http > transfer. > HTTP has a limitation on size that varies slightly by implementation but from > experience, anything over 10meg would be a problem. > > Jai > > > > -Original Message- > From: Alex Milanovic [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 07, 2005 4:33 PM > To: axis-user@ws.apache.org > Subject: sending very large attachments > > > Hi All, > I was wondering if it would make sense to use the SOAP attachment method for > sending very large files from one host to another over the Internet? How > would AXIS deal with a file of 1GB in size? > Alex > >