wrong order of parameters in axis c++ 1.5 (using google API)
Hello, it seams this topic was allread discused here, but it looks like a bug and therefore I want ask again. I've tried axis c++ 1.5. For testing purpose I've used the google SOAP API (http://www.google.com/apis/). While using WSDL2Ws it seams that the argument elements are in the wrong order in the generated c++ source: E:\devel\soap\google_testjava org.apache.axis.wsdl.wsdl2ws.WSDL2Ws -oc-lc++ -sclient GoogleSearch.wsdl 22.04.2005 18:00:35 org.apache.axis.utils.JavaUtils isAttachmentSupported WARNUNG: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled. Code generation completed. The following argument sequence of GoogleSearch.wsds ... message name=doGoogleSearch part name=keytype=xsd:string/ part name=q type=xsd:string/ part name=start type=xsd:int/ part name=maxResults type=xsd:int/ part name=filter type=xsd:boolean/ part name=restrict type=xsd:string/ part name=safeSearch type=xsd:boolean/ part name=lr type=xsd:string/ part name=ie type=xsd:string/ part name=oe type=xsd:string/ /message ... leads to this code fragment in GoogleSearchPort.cpp ... m_pCall-setOperation(doGoogleSearch, urn:GoogleSearch); applyUserPreferences(); m_pCall-addParameter((void*)Value0, filter, XSD_BOOLEAN); m_pCall-addParameter((void*)Value1, key, XSD_STRING); m_pCall-addParameter((void*)Value2, restrict, XSD_STRING); m_pCall-addParameter((void*)Value3, start, XSD_INT); m_pCall-addParameter((void*)Value4, ie, XSD_STRING); m_pCall-addParameter((void*)Value5, safeSearch, XSD_BOOLEAN); m_pCall-addParameter((void*)Value6, lr, XSD_STRING); m_pCall-addParameter((void*)Value7, maxResults, XSD_INT); m_pCall-addParameter((void*)Value8, oe, XSD_STRING); m_pCall-addParameter((void*)Value9, q, XSD_STRING); ... The elements are in the wrong order, which lead to the same wrong order on the SOAP wire protocol. Google comments this call with the error no signature match Manually reodering the arguments in the captured wire protocol causes google to give the expected answer! any comments? Greetings Guido Classen
Re: ignoring client WS-Security headers on the server
Axis is required to toss back a mustUnderstand fault when it receives a header with mustUnderstand=1 if it doesn't have a handler. All you have to do is configure a handler that removes the wsse:Security header from the message. Anne On 4/22/05, Jeff Greif [EMAIL PROTECTED] wrote: I have a web service which (at the moment) does not care about security. The client, however, insists on using WS-Security to sign its messages, which presumably puts mustUnderstand=1 somewhere in a SOAP header. Is there some way for the server to process the message without producing a could-not-understand fault, by using either a WS-Security handler with a loose policy or even better, a trivial handler or no handler at all? In what part of the processing is the decision about mustUnderstand made? Jeff
communication between the Handler and the Service
Either there is something i'm not getting or my whole code/configuration is wrong. I'd like to intercept a request using a handler, change something in that request and then let my service deal with these changes. However, I cannot this simple, intuitive concept to work! I have spent over two full days playing with different objects and different template methods in my service (a message service) all to no avail. What i'd like to do is get the XML for the body of the incoming request in my handler, change some values in it, and then let my message service deal with the modified body. But after extensive testing I realized that the Body that is passed to my Service and the one i modified in my Handler are completely different! It's as if Axis makes a copy of the incoming request, before its modified by my Handler and passes that old copy to my Service. Is this true? If not please let me know and i will send you some more code and configuration for you guys to examine. thanks, jeff
ProxyService implementation Issues (Axis 1.2RC3)
Environment: Apache Tomcat 5.0.24, JDK 1.4.2, Apache Axis 1.2RC3 I am using the ProxyService provided in the samples package as a starting point for implementing my own ProxyService class that would act as a proxy for web services. Using this design, I am able to connect to some services that happen to reside on the same axis server as the proxy service but having some issues when I try to connect to external services - e.g. http://www.xignite.com/xInsider.asmx?WSDL. Please note that the client seems to be working just fine (simply change binding address in the code to the endpoint URL) if I bypass the proxy. The exception I am getting indicates that its not even reaching the endpoint (note 404 error) - I did ensure that I am able to manually access the URL for both the service address as well as the WSDL file. Any pointers to resolving this issue is much appreciated. I am first appending the exception I am getting and then the rest of my code. Thanks, -Arun EXCEPTION # Printing Request Message ?xml version=1.0 encoding=UTF-8? soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/; xmlns:xsd=htt p://www.w3.org/2001/XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;soap env:Bodyns1:GetOfficers soapenv:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/ xmlns:ns1=http://www.xignite.com/services/;IssuerIdentifier xsi:type=xsd:stringIBM /IssuerIdentifierIssuerIdentifierType xsi:type=xsd:stringSymbol/IssuerIdentifierTyp e/ns1:GetOfficers/soapenv:Body/soapenv:Envelope# Request URL: http://localhost: 8080/axis/services/ProxyService AxisFault faultCode: {http://xml.apache.org/axis/}HTTP faultSubcode: faultString: (404)Object Not Found faultActor: faultNode: faultDetail: {}string:return code: 404 lt;htmlgt;lt;headgt;lt;titlegt;Site Not Foundlt;/titlegt;lt;/headgt; lt;bodygt;No web site is configured at this address.lt;/bodygt;lt;/htmlgt; {http://xml.apache.org/axis/}HttpErrorCode:404 (404)Object Not Found at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationConte xt.java:1077) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher .dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Sour ce) 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(DeserializationContext.ja va:225) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645) at org.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecke r.java:62) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173) at org.apache.axis.client.Call.invokeEngine(Call.java:2737) at org.apache.axis.client.Call.invoke(Call.java:2720) at org.apache.axis.client.Call.invoke(Call.java:2396) at org.apache.axis.client.Call.invoke(Call.java:2319) at org.apache.axis.client.Call.invoke(Call.java:1776) at org.apache.jsp.jsp.admin.ServiceDetail_jsp.invokeXigniteService(ServiceDetail_j sp.java:340) at org.apache.jsp.jsp.admin.ServiceDetail_jsp._jspService(ServiceDetail_jsp.java:5 02) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain .java:157) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav a:703) at
SOAP Monitor not able to communicate with the server and how to undeploy the SOAP Monitor for redeployment
I've successfully got Axis 1.2rc2 going on my test workstation and decided to get everything set up on one of our content servers. What i did was install Java 1.4.2_08 on the content server and then proceded to scp my tomcat and axis install directories to the content servers. After adding in all the environment variables and paths, everything was good to go. Initial tests of the sample services were good, but when i went to start the SOAP Monitor, the applet loaded up fine, but it couldn't connect to the server. I tried changing the port variable in the source code from 0 to a port that we have open and redeploying the SOAP Monitor, but it didn't work. I'm not very versed in ports and things like that (as a matter of fact, I've just started using axis and java) and i'm wondering, what is the significance of this service and port 0? Why is the SOAP Monitor unable to connect to the server and which server is it trying to connect to? I thought maybe it was because you need to undeploy the service first before deploying it again, but i didn't find anything about undeploying the SOAP Monitor. I tried making my own undeploy.wsdd with the contents of: undeployment xmlns=http://xml.apache.org/axis/wsdd/; xmlns:java=http://xml.apache.org/axis/wsdd/providers/java; service name=SOAPMonitorService/ /undeployment in order to undeploy the service, but after starting and restarting tomcat, the applet was still being loaded even though i hadn't redeployed the service yet. Any suggestions on helping me get the SOAP Monitor working would be greatly appreciated. If there's more information that you need, please let me know. Thanks for you consideration in this matter. Vincent J.