Re: My client AXIS C++ in Windows XP is fast but WinNT is slow
Samisa is doing a lot of work in improving the speed of multiple requests - it might well be worth you moving to the latest level i.e. take a nightly build leonardo rodrigo [EMAIL PROTECTED] 09/06/2005 17:19 Please respond to Apache AXIS C User List To axis-c-user@ws.apache.org cc Subject My client AXIS C++ in Windows XP is fast but WinNT is slow Dear all I have a Axis Client C++ 1.5 with Windows XP and the Web Services is in Windows NT and working very good, the Client C is ver fast. Now,I move the Axis Client C++ to a computer with Windows NT then the client is slow. The first query is quick but the second delay 20 seconds. Any idea is well received Best Regard Leonardo Rodrigo
Closing a secure channel
Title: Closing a secure channel A 1.4 question for you: in axis2/SecureChannel.cpp the close() method doesn't do anything. Shouldn't it at least close the connection that is opened in the open() method? For instance: void SecureChannel::close() { m_pSSLChannel-closeSSLChannel() } Or am I missing something here? Thanks, Bruce.
AXIS 1.2 (final) - document/literal - error processing operation with 2 arguments
Hello. It seems an axis internal error occurs on the server side, using document/literal style, when processing an operation with the following signature : public int testIntegerPairToInteger(int i1, int i2) The wsdl and wsdd files that are attached seem ok for me, and the sent request too. The error trace on ther server side is also attached. Just for information, the same operation is processed without any problem in both wrapped and document styles... Thanks for confirmation this is a bug... -- Ephemeris Lappis ?xml version=1.0 encoding=UTF-8? wsdl:definitions targetNamespace=urn:axis-test3 xmlns:impl=urn:axis-test3 xmlns:intf=urn:axis-test3 xmlns:apachesoap=http://xml.apache.org/xml-soap; xmlns:wsdlsoap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:xsd=http://www.w3.org/2001/XMLSchema; xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; !--WSDL created by Apache Axis version: 1.2 Built on May 03, 2005 (02:20:24 EDT)-- wsdl:types schema xmlns=http://www.w3.org/2001/XMLSchema; targetNamespace=urn:axis-test3 elementFormDefault=qualified element name=in0 type=xsd:int/ element name=in1 type=xsd:int/ element name=testIntegerPairToIntegerReturn type=xsd:int/ /schema /wsdl:types wsdl:message name=testIntegerPairToIntegerResponse wsdl:part name=testIntegerPairToIntegerReturn element=impl:testIntegerPairToIntegerReturn/ /wsdl:message wsdl:message name=testIntegerPairToIntegerRequest wsdl:part name=in0 element=impl:in0/ wsdl:part name=in1 element=impl:in1/ /wsdl:message wsdl:portType name=TestService wsdl:operation name=testIntegerPairToInteger parameterOrder=in0 in1 wsdl:input name=testIntegerPairToIntegerRequest message=impl:testIntegerPairToIntegerRequest/ wsdl:output name=testIntegerPairToIntegerResponse message=impl:testIntegerPairToIntegerResponse/ /wsdl:operation /wsdl:portType wsdl:binding name=TestServicePortSoapBinding type=impl:TestService wsdlsoap:binding style=document transport=http://schemas.xmlsoap.org/soap/http/ wsdl:operation name=testIntegerPairToInteger wsdlsoap:operation soapAction=/ wsdl:input name=testIntegerPairToIntegerRequest wsdlsoap:body use=literal/ /wsdl:input wsdl:output name=testIntegerPairToIntegerResponse wsdlsoap:body use=literal/ /wsdl:output /wsdl:operation /wsdl:binding wsdl:service name=AxisTest3 wsdl:port name=TestServicePort binding=impl:TestServicePortSoapBinding wsdlsoap:address location=http://ws.moon.net/axis3/ /wsdl:port /wsdl:service /wsdl:definitions deploy.wsdd Description: Binary data POST /axis3/services/TestServicePort HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.2 Host: 127.0.0.1: Cache-Control: no-cache Pragma: no-cache SOAPAction: Content-Length: 331 ?xml version=1.0 encoding=UTF-8? soapenv:Envelope 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:Body in0 xmlns=urn:axis-test31/in0 in1 xmlns=urn:axis-test32/in1 /soapenv:Body /soapenv:EnvelopeHTTP/1.1 500 Erreur Interne de Servlet Content-Type: text/xml; charset=utf-8 Date: Wed, 15 Jun 2005 05:54:00 GMT Server: Apache Coyote/1.0 Connection: close ?xml version=1.0 encoding=utf-8? soapenv:Envelope 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:Body soapenv:Fault faultcodesoapenv:Server.userException/faultcode faultstringjava.lang.NullPointerException/faultstring detail ns1:hostname xmlns:ns1=http://xml.apache.org/axis/;alhambra/ns1:hostname /detail /soapenv:Fault /soapenv:Body /soapenv:Envelope2005-06-15 07:54:00,529 INFOAxisFault: {org.apache.axis.transport.http.AxisServlet.processAxisFault(AxisServlet.java:381)} AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.NullPointerException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}hostname:alhambra java.lang.NullPointerException at org.apache.axis.AxisFault.makeFault(AxisFault.java:101) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:329) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453) at
Content is not allowed in trailing section
Title: Content is not allowed in trailing section I been having troubles posting this item. = Hi Guys, I have been working with Axis 1.2 Final and it has been working well on an IBM iSeries machine. I have started testing on a Windows machine using Java 1.4.2_08 and I am getting the following error: Content is not allowed in trailing section The Agent stub can call the server, the server receives the request and creates the response, the agent receives the response ( I think it does, but it does not get to my response handler to trace the response SOAP message ) and then fails. I am using Axis 1.2 Final on the agent and server ends. I have kept the test sample simple, call operation getDesc, pass the dept code and receive the dept description. String desc = getDesc ( String dept_code ) Request ?xml version=1.0 encoding=UTF-8?soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instancesoapenv:Bodyns1:getDesc soapenv:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/ xmlns:ns1=http://server.soap.mylaptop.comdept_code xsi:type=xsd:stringADM/dept_code/ns1:getDesc/soapenv:Body/soapenv:Envelope Response ?xml version=1.0 encoding=UTF-8?soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instancesoapenv:Bodyns1:getDescResponse soapenv:encodingStyle=http://schemas.xmlsoap.org/soap/encoding/ xmlns:ns1=http://server.soap.mylaptop.comns1:getDescReturn xsi:type=xsd:stringADMINISTRATOR DEPT/ns1:getDescReturn/ns1:getDescResponse/soapenv:Body/soapenv:Envelope I started the test using Java 1.5 and dropped back to 1.4.2_08 I have tried using different Xalan/Xerces versions 2.4.1 and 2.6.0. I have so far discovered the following. iSeries machine 1 ( Agent ) iSeries machine 2 ( Server ) - OK iSeries machine 1 ( Agent ) Windows machine 1 ( Server ) - DOES NOT WORK Microsoft .Net WebService Studio Tool === iSeries machine 2 ( Server ) - OK Microsoft .Net WebService Studio Tool === Windows machine 1 ( Server ) - OK Windows machine 1 (Agent) Windows machine 1 (Server ) - DOES NOT WORK Windows machine 1 (Agent) iSeries machine 2 ( Server ) - OK The SOAP response traced by my program looks identicial and the HTTP protocol header are nearly identical, expect that the Server property are different and IIS adds an X-Powered-By: ASP.NET property One is Server: Microsoft-IIS/5.1 and the other is Server: IBM-HTTP-Server/1.0 === Create trace file : SOAP_REQUEST01.XML SOAP fault code : {http://schemas.xmlsoap.org/soap/envelope/}Server.userException SOAP fault actor : null SOAP fault string : java.lang.RuntimeException: Exception in preInvoke : javax.xml.soap.SOAPException: org.xml.sax.SAXParseException: Content is not allowed in trailing section. Fault detail : 0 ?xml version=1.0 encoding=utf-8? stackTracejava.lang.RuntimeException: Exception in preInvoke : javax.xml.soap.SOAPException: org.xml.sax.SAXParseException: Content is not allowed in trailing section. at org.apache.axis.handlers.HandlerChainImpl.preInvoke(HandlerChainImpl.java:188) at org.apache.axis.handlers.HandlerChainImpl.handleResponse(HandlerChainImpl.java:160) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:180) at org.apache.axis.client.Call.invokeEngine(Call.java:2765) at org.apache.axis.client.Call.invoke(Call.java:2748) at org.apache.axis.client.Call.invoke(Call.java:2424) at org.apache.axis.client.Call.invoke(Call.java:2347) at org.apache.axis.client.Call.invoke(Call.java:1804) at com.mylaptop.soap.server.SimpleServerServiceBindingStub.getDesc(SimpleServerServiceBindingStub.java:103) at com.mylaptop.soap.agent.SimpleAgentService.callOperation_GETDESC(SimpleAgentService.java:75) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.lansa.jsm.service.SOAPAgentService.char(Unknown Source) at com.lansa.jsm.service.SOAPAgentService.for(Unknown Source) at com.lansa.jsm.service.SOAPAgentService.command(Unknown Source) at com.lansa.jsm.b.a(Unknown Source) at com.lansa.jsm.b.run(Unknown Source) /stackTrace = HandlerChainImpl.java private void preInvoke ( SOAPMessageContext msgContext ) { try { SOAPMessage message = msgContext.getMessage(); // Ensure that message is already in the form we want if(message != null message.getSOAPPart() != null) message.getSOAPPart().getEnvelope();
Pb with Axis client side
Hello, I'm building my webservice with JONAS and when i test it with AltovaSpy, it works normally but when i try it with a java progam which uses the stub and skels generated by wsdl2java, it catch an error: /*AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}hostname:DEV-25 org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:227) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.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$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:636) at org.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206) at org.apache.axis.client.Call.invokeEngine(Call.java:2726) at org.apache.axis.client.Call.invoke(Call.java:2709) at org.apache.axis.client.Call.invoke(Call.java:2385) at org.apache.axis.client.Call.invoke(Call.java:2308) at org.apache.axis.client.Call.invoke(Call.java:1765) */ Anyone have an idea about it? Thanks __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
Accessing web service data by servlet
I have cached data in a web service. Now I need to view that data with a browser. How can I use a J2EE servlet to access this data and display it. Can the browser page be dynamically updated as the web service collects new data?Thanks.
Re: classloader problem
Hi Jeff, The stub call is done in the JAAS module (file: SampleLoginModule.java), this module is configured on Tomcat application, and when I press the authentication form the JAAS module runs. When it runs, call the VerificaAutenticacao WebService, which returns some values to check if this user is authenticate. It's in this call that I got a CastClassException on the file WSDDTargetedChain.java:157(Axis code), and in there I see different ids for the same Handler: ClassUtils.forName(pivotQName.getLocalPart()).newInstance().getClass().getSuperclass().getInterfaces() = java.lang.Class[1] (id=85) Class.forName(org.apache.axis.Handler) = java.lang.Class (org.apache.axis.Handler) (id=91) But, if I call the same webservice but outside that JAAS module, everything works, and the ids are the same for the same handler: ClassUtils.forName(pivotQName.getLocalPart()).newInstance().getClass().getSuperclass().getInterfaces() = java.lang.Class[1] (id=85) Class.forName(org.apache.axis.Handler) = java.lang.Class (org.apache.axis.Handler) (id=85) Any ideas? humm.. :( Thanks one more time Jeff Jeff wrote: In a discussion about error handling a while back, I mentioned to James Taylor how insane it is to report a ClassCastException without citing the offending class. Presumably you know which class your handler is or can look it up in the handler element of your deployment descriptor. You need to ensure that it implements org.apache.axis.Handler, one way or another. If that doesn't help, make sure your log4j.properties file of configured to dump in DEBUG mode and check out the log for clues. (I wonder if anyone has every estimated how much Java development time is wasted globally on class path issues.) Jeff - Original Message - From: BVG [EMAIL PROTECTED] To: axis-user@ws.apache.org Sent: Tuesday, June 14, 2005 8:06 AM Subject: classloader problem I've a problem with classloader. I got all the time CastClassException when I invoke directly a stub (Axis 1.2) on a JAAS module (Java authentication). It seems the problem is on this line (WSDDTargetedChain.java:157): pivot = (Handler)ClassUtils.forName(pivotQName.getLocalPart()).newInstance(); the cast Handler is not from the same instance of result and throw a CastClass Exception. What can I do to prevent this frustrating problem? I really need your help! Thank you all! - ERROR --- AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.ClassCastException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.lang.ClassCastException at org.apache.axis.deployment.wsdd.WSDDTargetedChain.makeNewInstance(WSDDTarget edChain.java:157) at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeploy ableItem.java:274) at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployabl eItem.java:260) at org.apache.axis.deployment.wsdd.WSDDDeployment.getTransport(WSDDDeployment.j ava:394) at org.apache.axis.configuration.FileProvider.getTransport(FileProvider.java:25 7) at org.apache.axis.AxisEngine.getTransport(AxisEngine.java:332) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:163) at org.apache.axis.client.Call.invokeEngine(Call.java:2765) at org.apache.axis.client.Call.invoke(Call.java:2748) at org.apache.axis.client.Call.invoke(Call.java:2424) at org.apache.axis.client.Call.invoke(Call.java:2347) at org.apache.axis.client.Call.invoke(Call.java:1804) at com.jcms.Axis.WSPortal.WS_AcessoPortalSoapStub.verificaAutenticacao(WS_Acess oPortalSoapStub.java:321) at com.jcms.Axis.Webservices.VerificaAutenticacao(Webservices.java:263) at jaas.module.SampleLoginModule.login(SampleLoginModule.java:214) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:675) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:129) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:610) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:607) at javax.security.auth.login.LoginContext.login(LoginContext.java:534) at org.apache.catalina.realm.JAASRealm.authenticate(JAASRealm.java:316) at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthent icator.java:229) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase .java:446) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex t.java:102) at
Axis 1.2 on Java 1.3 platform
Hello, Can I safely run Axis 1.2 on Java 1.3 platform ? Axis 1.3 sources can be easily compiled for 1.3 platform but how about SAAJ, JAXRPC and other required libraries. Are the included libs java 1.3 compliant ? What is your experience ? Id like to run Webservice client based on Axis 1.2 on Oracle 9.2 database ( Java 1.3 ) . Regards MK
Re: wsdl composition
I'm not sure I understand the issue. If your clients have access to the WSDL document, then they have the service endpoints for all of your services. There's no need for them to perform any type of magical discovery. In any case, even if you can't expose a single port that implements three different portTypes, you can specify the same endpoint in three different ports. Axis won't support this directly -- Axis will always create a different endpoint for each port. But you can implement a proxy (also known as a gateway) that accepts requests for all three types of services and then redirects the requests to the appropriate endpoints. This proxy can do lots of other things besides routing, such as validation, transformation, monitoring, auditing, security, etc. This is the way most web services management products work. Anne On 6/15/05, Ricardo Brito Da Rocha [EMAIL PROTECTED] wrote: Hi all. We've been thinking on how to properly have porttype composition defined in WSDL and implemented in a web service, with some practical restrictions of our own. The reason we post the issue here is that we would like to understand how Axis deals with the limitations of WSDL 1.1 we found, and how the Java2WSDL tool can be a help. Please make additional comments on our approach and possible alternatives if you have some. Thanks in advance, Ricardo Question: how to compose portTypes? Goal: have one endpoint implementing multiple portTypes. Constraints: We have several portTypes, describing various aspects of a service: - ServiceBase with a getVersion() method - File with create() and readDir() methods - Delegation with a doDelegation() method To simplify the life of the clients we only want to have _one_ endpoint exposed. We cannot assume that all clients would use our client code with some magical discovery of associated endpoints. ServiceBase and Delegation is described by WSDL files. File is described by a Java class and we use Axis 1.2's Java2WSDL to generate WSDL from it. Discussion: According to our understanding of WSDL 1.1 ( implemented by Axis and gSOAP) portType cannot extend other portTypes (it is a feature coming in WSDL 2.0). Also a port cannot have multiple portTypes (as it is linked with one binding, which is linked with one portType), so an endpoint can have only one portType associated with it. Given these constraints we need a single portType, which merges the methods of ServiceBase, File and Delegation. According to our understading we cannot do this merge in pure WSDL, so we need to do some pre-processing (see Globus Toolkit 4 also). The question is if it is worth doing at WSDL level, using some funny XSLT? Or is it possible to do this merge using Axis' Java2WSDL --input or --importSchema options?
Re: Axis 1.2 on Java 1.3 platform
Yep. it should be possible. thanks, dims On 6/15/05, Kozikowski Miroslaw [EMAIL PROTECTED] wrote: Hello, Can I safely run Axis 1.2 on Java 1.3 platform ? Axis 1.3 sources can be easily compiled for 1.3 platform but how about SAAJ, JAXRPC and other required libraries. Are the included libs java 1.3 compliant ? What is your experience ? I'd like to run Webservice client based on Axis 1.2 on Oracle 9.2 database ( Java 1.3 ) . Regards MK -- Davanum Srinivas -http://blogs.cocoondev.org/dims/
'No Such Operation' error
Title: Message Hi I have received aWSDL from a customer; the style is document/literal.The stubs/skeleton are generatedfine when WSDL2Java is run, but the following error appears when the client code attempts the remote call with the bean: Exception in thread "main" AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation apos;TradePriceRequestapos;faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation amp;apos;TradePriceRequestamp;apos;faultActor: faultNode: faultDetail: No such operation 'TradePriceRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169) at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1712) at org.apache.crimson.parser.Parser2.content(Parser2.java:1963) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691) at org.apache.crimson.parser.Parser2.content(Parser2.java:1963) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667) at org.apache.crimson.parser.Parser2.parse(Parser2.java:337) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at javax.xml.parsers.SAXParser.parse(SAXParser.java:345) at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538) at org.apache.axis.Message.getSOAPEnvelope(Message.java:376) at org.apache.axis.client.Call.invokeEngine(Call.java:2583) at org.apache.axis.client.Call.invoke(Call.java:2553) at org.apache.axis.client.Call.invoke(Call.java:2248) at org.apache.axis.client.Call.invoke(Call.java:2171) at org.apache.axis.client.Call.invoke(Call.java:1691) at com.example.stockquote_wsdl.StockQuoteSoapBindingStub.getLastTradePrice(StockQuoteSoapBindingStub.java:145) at com.example.stockquote_wsdl.sqMain.main(sqMain.java:63) Is there something incorrect in the WSDL that has caused the generatedWSDDdeploymentfile to be incomplete? The WSDL looks like this (I suspect it is based on the examplefound atwww.w3.org/TR/wsdl): ?xml version="1.0" encoding="UTF-8"?wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:xml-soapadapter" xmlns:intf="urn:xml-soapadapter" xmlns:tns="urn:ProvidentProvisioningTNS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:ProvidentProvisioningTNS" name="urn:ProvidentProvisioning" wsdl:types xsd:schema elementFormDefault="qualified" targetNamespace="urn:ProvidentProvisioningTNS" xsd:element name="ProvisioningTaskRequest" xsd:complexType xsd:sequence xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/ /xsd:sequence /xsd:complexType /xsd:element /xsd:schema /wsdl:types message name="ProvisioningTaskRequestMessage" part name="body" element="tns:ProvisioningTaskRequest"/ /message message name="ProvisioningTaskAckMessage" part name="body" type="xsd:string"/ /message portType name="ProvisioningTaskRequestPortType" operation name="ProvisioningTaskRequestOperation" input message="tns:ProvisioningTaskRequestMessage"/ output message="tns:ProvisioningTaskAckMessage"/ /operation /portType binding name="ProvisioningTaskRequestSoapBinding" type="tns:ProvisioningTaskRequestPortType" soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/ operation name="ProvisioningTaskRequestOperation" soap:operation soapAction="ProvidentProvisioningTNS/ProvisioningTaskRequestOperation"/ input soap:body use="literal"/ /input output soap:body use="literal"/ /output /operation /binding service name="ProvisioningService" documentationProvident Provisioning Service/documentation port name="ProvisioningTaskRequestPort" binding="tns:ProvisioningTaskRequestSoapBinding" soap:address location="http://localhost:8880/axis/services/ProvidentProvisioning"/ /port /service !-- message declns -- !-- port type declns FINISHED -- !-- binding declns FINISHED -- !-- service decln FINISHED --/wsdl:definitions Many thanks for any help that can be provided. Regards Patrick Quinn
RE: wsdl composition
Hi Anne. Thanks a lot for the reply. I still have some questions though... I'm not sure I understand the issue. If your clients have access to the WSDL document, then they have the service endpoints for all of your services. There's no need for them to perform any type of magical discovery. True if the only endpoints you want to use are the ones published in the WSDL file - already a discovery mechanism (though not magical). On the other hand, we auto-generate our client stubs and give the user ability to provide the endpoint they want to contact. So we would need a way to have different portTypes associated somewhere. We could do it, but having one single endpoint seems cleaner. In any case, even if you can't expose a single port that implements three different portTypes, you can specify the same endpoint in three different ports. This sounds a lot better. Axis won't support this directly -- Axis will always create a different endpoint for each port. But you can implement a proxy (also known as a gateway) that accepts requests for all three types of services and then redirects the requests to the appropriate endpoints. This proxy can do lots of other things besides routing, such as validation, transformation, monitoring, auditing, security, etc. This is the way most web services management products work. I think i understand the concept, but i'm not sure i know how to do it. If for my service i publish one WSDL file with the different porttypes, i will get (correct me if i'm wrong) auto-generated by Axis: - on the client side one interface, service, service locator and stub class for each portType - on the server side one interface, service, service locator, skeleton and implementation class for each portType So there is no way to have the proxy classes auto-generated. Is this what you mean when saying Axis won't support it directly? As i described before, we could generate a WSDL that puts everything on one portType and generate the server side stubs from it. This would not be the one published for clients though. Just a way to get everything pointing to the same implementation class. Would you do it differently? I can see the option of auto-generating the implementation classes per portType and doing the proxy by hand just for the redirection. But it would be nice to have it automated somehow. Thanks, Ricardo Anne On 6/15/05, Ricardo Brito Da Rocha [EMAIL PROTECTED] wrote: Hi all. We've been thinking on how to properly have porttype composition defined in WSDL and implemented in a web service, with some practical restrictions of our own. The reason we post the issue here is that we would like to understand how Axis deals with the limitations of WSDL 1.1 we found, and how the Java2WSDL tool can be a help. Please make additional comments on our approach and possible alternatives if you have some. Thanks in advance, Ricardo Question: how to compose portTypes? Goal: have one endpoint implementing multiple portTypes. Constraints: We have several portTypes, describing various aspects of a service: - ServiceBase with a getVersion() method - File with create() and readDir() methods - Delegation with a doDelegation() method To simplify the life of the clients we only want to have _one_ endpoint exposed. We cannot assume that all clients would use our client code with some magical discovery of associated endpoints. ServiceBase and Delegation is described by WSDL files. File is described by a Java class and we use Axis 1.2's Java2WSDL to generate WSDL from it. Discussion: According to our understanding of WSDL 1.1 ( implemented by Axis and gSOAP) portType cannot extend other portTypes (it is a feature coming in WSDL 2.0). Also a port cannot have multiple portTypes (as it is linked with one binding, which is linked with one portType), so an endpoint can have only one portType associated with it. Given these constraints we need a single portType, which merges the methods of ServiceBase, File and Delegation. According to our understading we cannot do this merge in pure WSDL, so we need to do some pre-processing (see Globus Toolkit 4 also). The question is if it is worth doing at WSDL level, using some funny XSLT? Or is it possible to do this merge using Axis' Java2WSDL --input or --importSchema options? smime.p7s Description: S/MIME cryptographic signature
Re: SOPAPart is not beeing processed ?
Ok, I found out that the process stopps in the SOAPPart constructor while trying to set the mime header content-id. reason unknown... Anybody a clue ? btw: the exception handling is oviously a drag... no message whatsoever :-(
Re: classloader problem
Hi BVO, We really need to know what ClassUtils.forName(pivotQName.getLocalPart()).newInstance().getClass() evaluates to in the case of error. Jeff - Original Message - From: BVG [EMAIL PROTECTED] To: axis-user@ws.apache.org Sent: Wednesday, June 15, 2005 4:35 AM Subject: Re: classloader problem Hi Jeff, The stub call is done in the JAAS module (file: SampleLoginModule.java), this module is configured on Tomcat application, and when I press the authentication form the JAAS module runs. When it runs, call the VerificaAutenticacao WebService, which returns some values to check if this user is authenticate. It's in this call that I got a CastClassException on the file WSDDTargetedChain.java:157(Axis code), and in there I see different ids for the same Handler: ClassUtils.forName(pivotQName.getLocalPart()).newInstance().getClass().getS uperclass().getInterfaces() = java.lang.Class[1] (id=85) Class.forName(org.apache.axis.Handler) = java.lang.Class (org.apache.axis.Handler) (id=91) But, if I call the same webservice but outside that JAAS module, everything works, and the ids are the same for the same handler: ClassUtils.forName(pivotQName.getLocalPart()).newInstance().getClass().getS uperclass().getInterfaces() = java.lang.Class[1] (id=85) Class.forName(org.apache.axis.Handler) = java.lang.Class (org.apache.axis.Handler) (id=85) Any ideas? humm.. :( Thanks one more time Jeff Jeff wrote: In a discussion about error handling a while back, I mentioned to James Taylor how insane it is to report a ClassCastException without citing the offending class. Presumably you know which class your handler is or can look it up in the handler element of your deployment descriptor. You need to ensure that it implements org.apache.axis.Handler, one way or another. If that doesn't help, make sure your log4j.properties file of configured to dump in DEBUG mode and check out the log for clues. (I wonder if anyone has every estimated how much Java development time is wasted globally on class path issues.) Jeff - Original Message - From: BVG [EMAIL PROTECTED] To: axis-user@ws.apache.org Sent: Tuesday, June 14, 2005 8:06 AM Subject: classloader problem I've a problem with classloader. I got all the time CastClassException when I invoke directly a stub (Axis 1.2) on a JAAS module (Java authentication). It seems the problem is on this line (WSDDTargetedChain.java:157): pivot = (Handler)ClassUtils.forName(pivotQName.getLocalPart()).newInstance(); the cast Handler is not from the same instance of result and throw a CastClass Exception. What can I do to prevent this frustrating problem? I really need your help! Thank you all! - ERROR --- AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.ClassCastException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.lang.ClassCastException at org.apache.axis.deployment.wsdd.WSDDTargetedChain.makeNewInstance(WSDDTarge t edChain.java:157) at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeplo y ableItem.java:274) at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployab l eItem.java:260) at org.apache.axis.deployment.wsdd.WSDDDeployment.getTransport(WSDDDeployment. j ava:394) at org.apache.axis.configuration.FileProvider.getTransport(FileProvider.java:2 5 7) at org.apache.axis.AxisEngine.getTransport(AxisEngine.java:332) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:163) at org.apache.axis.client.Call.invokeEngine(Call.java:2765) at org.apache.axis.client.Call.invoke(Call.java:2748) at org.apache.axis.client.Call.invoke(Call.java:2424) at org.apache.axis.client.Call.invoke(Call.java:2347) at org.apache.axis.client.Call.invoke(Call.java:1804) at com.jcms.Axis.WSPortal.WS_AcessoPortalSoapStub.verificaAutenticacao(WS_Aces s oPortalSoapStub.java:321) at com.jcms.Axis.Webservices.VerificaAutenticacao(Webservices.java:263) at jaas.module.SampleLoginModule.login(SampleLoginModule.java:214) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:3 9 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:675) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:129) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:610) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokeModule(LoginContext.java:607) at javax.security.auth.login.LoginContext.login(LoginContext.java:534) at
WSDL2Java genertion bug?
Title: WSDL2Java genertion bug? Hi All I have a schema which contains a certain complexType such as: xs:complexType name=OperatorType xs:sequence xs:choice xs:element name=EXCHANGE type=part:EXCHANGEOperatorType minOccurs=0/ xs:element name=APPLY type=part:REDUCEOperatorType minOccurs=0/ xs:element name=HASH_JOIN type=part:HASHJOINOperatorType minOccurs=0/ xs:element name=HASH_LOOPS type=part:HASHLOOPSJOINOperatorType minOccurs=0/ xs:element name=OPERATION_CALL type=part:OPERATIONCALLOperatorType minOccurs=0/ xs:element name=PRINT type=part:PRINTOperatorType minOccurs=0/ xs:element name=TABLE_SCAN type=part:TableScanOperatorType minOccurs=0/ xs:element name=UNNEST type=part:UNNESTOperatorType minOccurs=0/ /xs:choice xs:element name=tupleType xs:complexType xs:sequence maxOccurs=unbounded xs:element name=name type=xs:string/ xs:element name=type type=xs:string/ /xs:sequence /xs:complexType /xs:element /xs:sequence xs:attribute name=operatorID type=xs:string use=required/ xs:attribute name=operatorFlagType type=part:OperatorFlagType use=required/ xs:attribute name=isRootOperator type=xs:boolean use=optional/ /xs:complexType Please note the maxOccurs in the sequence within the complex type tupleType. A valid XML corresponding to this schema (as generated by XMLSpy) looks like: tupleType nameString/name typeString/type nameString/name typeString/type nameString/name typeString/type /tupleType But the generated code doesn't correspond to this multiple occurrences of the name-type pair. I can add another element (say item) and make this unbounded, so that the XML bit would look like: tupleType item nameText/name typeText/type /item item nameText/name typeText/type /item item nameText/name typeText/type /item /tupleType Axis generated code does cater for this (if the extra element is added to the schema). But why would it be required if the first bit of XML is perfectly valid as per the schema definitions? Is this a bug in the Axis code generation? Is it already in the bugzilla? Regards Arijit And when the night is cloudy, There is still a light that shines on me, Shine on until tomorrow, let it be. John Lennon/Paul McCartney
SoapAttachments not getting stored if less than 10kb
I am using Axis1.2, Attachment is received using DataHandler , I am facing a vered probelm. i.e . If the attached xml file is less than 10kb then the file is not getting stored in the destination directory. but if the file is of greater size , then it stores the file. wht could be the issue. Thanks and regards, krthekeyan.s
PB with some character in french on SOAP message
Hi there, My webservice extracts some french name which contains #233;,#232;.. In the SOAP response message, these character are not display correctly. Anyone have an idea about it? I think that is a encoding pb but i have no idea to fix it. Thank you __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
RE: No such operation error - malformed WSDL?
Title: Message Patrick: Can you replace the location line in your wsdl with the following line and regenerate stub and skeleton ? soap:address location="http://localhost:8880/axis/services/ProvisioningTaskRequestPort" Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 10:37 AMTo: axis-user@ws.apache.orgSubject: No such operation error - malformed WSDL? Hi I have received aWSDL from a customer.The style is document/literal.The stubs/skeleton are generatedfine when WSDL2Java is run, buta 'no such operation'error appears when the client code attempts the remote call with the bean. Is there something incorrect in the WSDL that has caused the generatedWSDDdeploymentfile to be incomplete? Many thanks for any help that can be provided. Data is below. Regards Patrick Quinn error text Exception in thread "main" AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation apos;ProvisioningTaskRequestapos;faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: No such operation amp;apos;ProvisioningTaskRequestamp;apos;faultActor: faultNode: faultDetail: No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) . . . at org.apache.axis.client.Call.invoke(Call.java:1691) at ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingStub.provisioningTaskRequestOperation(ProvisioningTaskRequestSoapBindingStub.java:140) at ProvidentProvisioningTNS.Main2.main(Main2.java:63) No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)etc. The WSDL looks like this (I suspect it is based on the examplefound atwww.w3.org/TR/wsdl): ?xml version="1.0" encoding="UTF-8"?wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:xml-soapadapter" xmlns:intf="urn:xml-soapadapter" xmlns:tns="urn:ProvidentProvisioningTNS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:ProvidentProvisioningTNS" name="urn:ProvidentProvisioning" wsdl:types xsd:schema elementFormDefault="qualified" targetNamespace="urn:ProvidentProvisioningTNS" xsd:element name="ProvisioningTaskRequest" xsd:complexType xsd:sequence xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/ /xsd:sequence /xsd:complexType /xsd:element /xsd:schema /wsdl:types message name="ProvisioningTaskRequestMessage" part name="body" element="tns:ProvisioningTaskRequest"/ /message message name="ProvisioningTaskAckMessage" part name="body" type="xsd:string"/ /message portType name="ProvisioningTaskRequestPortType" operation name="ProvisioningTaskRequestOperation" input message="tns:ProvisioningTaskRequestMessage"/ output message="tns:ProvisioningTaskAckMessage"/ /operation /portType binding name="ProvisioningTaskRequestSoapBinding" type="tns:ProvisioningTaskRequestPortType" soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/ operation name="ProvisioningTaskRequestOperation" soap:operation soapAction="ProvidentProvisioningTNS/ProvisioningTaskRequestOperation"/ input soap:body use="literal"/ /input output soap:body use="literal"/ /output /operation /binding service name="ProvisioningService" documentationProvident Provisioning Service/documentation port name="ProvisioningTaskRequestPort" binding="tns:ProvisioningTaskRequestSoapBinding" soap:address location="http://localhost:8880/axis/services/ProvidentProvisioning"/ /port /service !-- message declns -- !-- port type declns FINISHED -- !-- binding declns FINISHED -- !-- service decln FINISHED --/wsdl:definitions deploy.wsdd file deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" !-- Services from ProvisioningService WSDL service -- service name="ProvisioningTaskRequestPort" provider="java:RPC" style="document" use="literal" requestFlow handler type="soapmonitor"/ /requestFlow responseFlow handler type="soapmonitor"/ /responseFlow parameter name="wsdlTargetNamespace" value="urn:ProvidentProvisioningTNS"/ parameter name="wsdlServiceElement" value="ProvisioningService"/ parameter name="wsdlServicePort" value="ProvisioningTaskRequestPort"/ parameter name="className"
ANNOUNCE: Apache Axis version 1.2.1 RELEASE
Hi folks: In the continued spirit of release early and often, the Apache Axis team is pleased to announce the release of version 1.2.1, an incremental change over 1.2 final, with some added functionality and of course bug fixes. You can find it at: http://www.apache.org/dyn/closer.cgi/ws/axis/1_2_1/ A few words about this release - * Changes can be found in changelog.html at the top level... Better cookie support, array handling, elementFormDefault in generated WSDL, SAAJ bug fixes, etc. * As always, thanks to EVERYONE who submitted bug reports, patches, and (especially) good, concise test cases. Muchos gracias. * Also as always, please send questions/comments to axis-user@ws.apache.org, and development-related issues to [EMAIL PROTECTED] Issues may be checked and filed at http://issues.apache.org/jira/browse/AXIS Onwards to 1.2.Next... Thanks, --Glen on behalf of the Axis team
Complex type / Javabean design
Hello. This is a simple, perhaps stupid, question about how to design some kind of javabeans to be good complex types for the wsdl and soap translation. I have done some basic tests with simple flat, structure like javabeans with primitive or 1-1 aggregated complex types. All this seems to work with Axis. Now, i'm looking for more complex types with 1-n agregations. For instance an Order and Product line. The javabean convention let the bean designer provide both agregate getter and setter, and indexed properties ones. In my previous example, operations on my Order object could be something like : ProductLine[] getProductLines() void setProductLines(ProductLine[] pl) to set or get the whole agregate. But indexed properties style methods could also be : ProductLine getProductLine(int index) void setProductLine(ProductLine pl, int index) I've tested something like that with axis (1.2 final), and the java2wsdl produces a strange result. The Order type references two pseudo-attributes : one for the array, mapping the first setter/getter set, and another one for the indexed property... In this case, or similar cases, does it make sense to design (or reuse) such javabeans. If yes, is there any way to use the standard java2wsdl translation (I know someone is going to quickly answer to wsdl it first !), and standard serializers ? Thanks for your comments. -- Ephemeris Lappis
SimpleProvider: Soap service will not be deployed
Hello, I'd like to deploy a soap service on runtime. I've written my own provider, the SpringBeanProvider. It delegates requests to the before generated proxy (java.reflect.Proxy). I execute following code: Object myProxy = ...; /** * Create soap service. */ SpringBeanProvider springBeanProvider = new SpringBeanProvider(myProxy); SOAPService soapService = new SOAPService(springBeanProvider); /** * Configure soap service for axis. */ String namespaceUri = ...; String soapServiceName = ...; String soapPortName = ...; String soapClassName = InterfaceWhichProxyImplements.class; String soapAllowedMethods = *; soapService.setName(soapServiceName ); soapService.setStyle(Style.WRAPPED); soapService.setUse(Use.LITERAL); soapService.setOption( SpringBeanProvider.OPTION_WSDL_TARGETNAMESPACE, namespaceUri); soapService.setOption( SpringBeanProvider.OPTION_WSDL_SERVICEELEMENT, soapServiceName); soapService.setOption( SpringBeanProvider.OPTION_WSDL_SERVICEPORT, soapPortName); soapService.setOption( SpringBeanProvider.OPTION_CLASSNAME, soapClassName); soapService.setOption( SpringBeanProvider.OPTION_ALLOWEDMETHODS, soapAllowedMethods); /** * Register soap service in axis. */ AxisServer axisServer = retrieveEngineFromJavaxServletServletContext(); QName soapServiceQName = new QName(namespaceUri, soapServiceName); SimpleProvider sp = new SimpleProvider(axisServer.getConfig()); sp.deployService(soapServiceName, soapService); try { sp.configureEngine(axisServer); axisServer.refreshGlobalOptions(); } catch (ConfigurationException e) { throw new RuntimeException( Could not configure new soap service., e); } When I have a look at the deployed services of EngineConfiguration config = axisServer.getConfig(); my new soap service is not deployed. Does anyone see what I'm doing wrong? Thanks a lot! Cheers, Martin
RE: No such operation error - malformed WSDL?
Title: Message This is the generated deployment file. Maybe it needs a description of the missing operation? If so, I wonder why the WSDL2Java did not generate this? deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" !-- Services from ProvisioningService WSDL service -- service name="ProvisioningTaskRequestPort" provider="java:RPC" style="document" use="literal" parameter name="wsdlTargetNamespace" value="urn:ProvidentProvisioningTNS"/ parameter name="wsdlServiceElement" value="ProvisioningService"/ parameter name="wsdlServicePort" value="ProvisioningTaskRequestPort"/ parameter name="className" value="ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingSkeleton"/ parameter name="wsdlPortType" value="ProvisioningTaskRequestPortType"/ parameter name="allowedMethods" value="*"/ typeMapping xmlns:ns="urn:ProvidentProvisioningTNS" qname="ns:ProvisioningTaskRequest" type="java:ProvidentProvisioningTNS._ProvisioningTaskRequest" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" / /service/deployment -Original Message-From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] Sent: 15 June 2005 16:22To: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Patrick: Can you replace the location line in your wsdl with the following line and regenerate stub and skeleton ? soap:address location="http://localhost:8880/axis/services/ProvisioningTaskRequestPort" Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 10:37 AMTo: axis-user@ws.apache.orgSubject: No such operation error - malformed WSDL? Hi I have received aWSDL from a customer.The style is document/literal.The stubs/skeleton are generatedfine when WSDL2Java is run, buta 'no such operation'error appears when the client code attempts the remote call with the bean. Is there something incorrect in the WSDL that has caused the generatedWSDDdeploymentfile to be incomplete? Many thanks for any help that can be provided. Data is below. Regards Patrick Quinn error text Exception in thread "main" AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation apos;ProvisioningTaskRequestapos;faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: No such operation amp;apos;ProvisioningTaskRequestamp;apos;faultActor: faultNode: faultDetail: No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) . . . at org.apache.axis.client.Call.invoke(Call.java:1691) at ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingStub.provisioningTaskRequestOperation(ProvisioningTaskRequestSoapBindingStub.java:140) at ProvidentProvisioningTNS.Main2.main(Main2.java:63) No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)etc. The WSDL looks like this (I suspect it is based on the examplefound atwww.w3.org/TR/wsdl): ?xml version="1.0" encoding="UTF-8"?wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:xml-soapadapter" xmlns:intf="urn:xml-soapadapter" xmlns:tns="urn:ProvidentProvisioningTNS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:ProvidentProvisioningTNS" name="urn:ProvidentProvisioning" wsdl:types xsd:schema elementFormDefault="qualified" targetNamespace="urn:ProvidentProvisioningTNS" xsd:element name="ProvisioningTaskRequest" xsd:complexType xsd:sequence xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/ /xsd:sequence /xsd:complexType /xsd:element /xsd:schema /wsdl:types message name="ProvisioningTaskRequestMessage" part name="body" element="tns:ProvisioningTaskRequest"/ /message message name="ProvisioningTaskAckMessage" part name="body" type="xsd:string"/ /message portType name="ProvisioningTaskRequestPortType" operation name="ProvisioningTaskRequestOperation" input
RE: No such operation error - malformed WSDL?
Title: Message Did it fix your problem ? WSDL2java probable doesn't pay attention onto the location line. -Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 11:57 AMTo: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? This is the generated deployment file. Maybe it needs a description of the missing operation? If so, I wonder why the WSDL2Java did not generate this? deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" !-- Services from ProvisioningService WSDL service -- service name="ProvisioningTaskRequestPort" provider="java:RPC" style="document" use="literal" parameter name="wsdlTargetNamespace" value="urn:ProvidentProvisioningTNS"/ parameter name="wsdlServiceElement" value="ProvisioningService"/ parameter name="wsdlServicePort" value="ProvisioningTaskRequestPort"/ parameter name="className" value="ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingSkeleton"/ parameter name="wsdlPortType" value="ProvisioningTaskRequestPortType"/ parameter name="allowedMethods" value="*"/ typeMapping xmlns:ns="urn:ProvidentProvisioningTNS" qname="ns:ProvisioningTaskRequest" type="java:ProvidentProvisioningTNS._ProvisioningTaskRequest" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" / /service/deployment -Original Message-From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] Sent: 15 June 2005 16:22To: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Patrick: Can you replace the location line in your wsdl with the following line and regenerate stub and skeleton ? soap:address location="http://localhost:8880/axis/services/ProvisioningTaskRequestPort" Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 10:37 AMTo: axis-user@ws.apache.orgSubject: No such operation error - malformed WSDL? Hi I have received aWSDL from a customer.The style is document/literal.The stubs/skeleton are generatedfine when WSDL2Java is run, buta 'no such operation'error appears when the client code attempts the remote call with the bean. Is there something incorrect in the WSDL that has caused the generatedWSDDdeploymentfile to be incomplete? Many thanks for any help that can be provided. Data is below. Regards Patrick Quinn error text Exception in thread "main" AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation apos;ProvisioningTaskRequestapos;faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: No such operation amp;apos;ProvisioningTaskRequestamp;apos;faultActor: faultNode: faultDetail: No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) . . . at org.apache.axis.client.Call.invoke(Call.java:1691) at ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingStub.provisioningTaskRequestOperation(ProvisioningTaskRequestSoapBindingStub.java:140) at ProvidentProvisioningTNS.Main2.main(Main2.java:63) No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)etc. The WSDL looks like this (I suspect it is based on the examplefound atwww.w3.org/TR/wsdl): ?xml version="1.0" encoding="UTF-8"?wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:xml-soapadapter" xmlns:intf="urn:xml-soapadapter" xmlns:tns="urn:ProvidentProvisioningTNS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:ProvidentProvisioningTNS" name="urn:ProvidentProvisioning" wsdl:types xsd:schema elementFormDefault="qualified" targetNamespace="urn:ProvidentProvisioningTNS" xsd:element name="ProvisioningTaskRequest" xsd:complexType xsd:sequence xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/ /xsd:sequence /xsd:complexType /xsd:element /xsd:schema /wsdl:types message name="ProvisioningTaskRequestMessage" part name="body"
Re: Complex type / Javabean design
hehehe...WSDL First! :) -- dims On 6/15/05, Ephemeris Lappis [EMAIL PROTECTED] wrote: Hello. This is a simple, perhaps stupid, question about how to design some kind of javabeans to be good complex types for the wsdl and soap translation. I have done some basic tests with simple flat, structure like javabeans with primitive or 1-1 aggregated complex types. All this seems to work with Axis. Now, i'm looking for more complex types with 1-n agregations. For instance an Order and Product line. The javabean convention let the bean designer provide both agregate getter and setter, and indexed properties ones. In my previous example, operations on my Order object could be something like : ProductLine[] getProductLines() void setProductLines(ProductLine[] pl) to set or get the whole agregate. But indexed properties style methods could also be : ProductLine getProductLine(int index) void setProductLine(ProductLine pl, int index) I've tested something like that with axis (1.2 final), and the java2wsdl produces a strange result. The Order type references two pseudo-attributes : one for the array, mapping the first setter/getter set, and another one for the indexed property... In this case, or similar cases, does it make sense to design (or reuse) such javabeans. If yes, is there any way to use the standard java2wsdl translation (I know someone is going to quickly answer to wsdl it first !), and standard serializers ? Thanks for your comments. -- Ephemeris Lappis -- Davanum Srinivas -http://blogs.cocoondev.org/dims/
RE: No such operation error - malformed WSDL?
Title: Message Hi Feng First of all, thanks for taking the time to reply. I've made the change and regenerated the stub + skeleton, then rerun. The No Such Operation error is still there. Your suggestion, however, did cure one problem I had noticed, an extraneous closing angled bracket in the deploy.wsdd file. $ diff deploy.wsdd deployModified.wsdd qname="ns:ProvisioningTaskRequest"--- qname="ns:ProvisioningTaskRequest" Regards Pat -Original Message-From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] Sent: 15 June 2005 16:22To: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Patrick: Can you replace the location line in your wsdl with the following line and regenerate stub and skeleton ? soap:address location="http://localhost:8880/axis/services/ProvisioningTaskRequestPort" Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 10:37 AMTo: axis-user@ws.apache.orgSubject: No such operation error - malformed WSDL? Hi I have received aWSDL from a customer.The style is document/literal.The stubs/skeleton are generatedfine when WSDL2Java is run, buta 'no such operation'error appears when the client code attempts the remote call with the bean. Is there something incorrect in the WSDL that has caused the generatedWSDDdeploymentfile to be incomplete? Many thanks for any help that can be provided. Data is below. Regards Patrick Quinn error text Exception in thread "main" AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation apos;ProvisioningTaskRequestapos;faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: No such operation amp;apos;ProvisioningTaskRequestamp;apos;faultActor: faultNode: faultDetail: No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) . . . at org.apache.axis.client.Call.invoke(Call.java:1691) at ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingStub.provisioningTaskRequestOperation(ProvisioningTaskRequestSoapBindingStub.java:140) at ProvidentProvisioningTNS.Main2.main(Main2.java:63) No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)etc. The WSDL looks like this (I suspect it is based on the examplefound atwww.w3.org/TR/wsdl): ?xml version="1.0" encoding="UTF-8"?wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="urn:xml-soapadapter" xmlns:intf="urn:xml-soapadapter" xmlns:tns="urn:ProvidentProvisioningTNS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:ProvidentProvisioningTNS" name="urn:ProvidentProvisioning" wsdl:types xsd:schema elementFormDefault="qualified" targetNamespace="urn:ProvidentProvisioningTNS" xsd:element name="ProvisioningTaskRequest" xsd:complexType xsd:sequence xsd:element minOccurs="0" maxOccurs="1" name="REQUESTID" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="SOTYPE" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="PRIORITY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="RECOVERY" type="xsd:string"/ xsd:element minOccurs="0" maxOccurs="1" name="XML_SO" type="xsd:string"/ /xsd:sequence /xsd:complexType /xsd:element /xsd:schema /wsdl:types message name="ProvisioningTaskRequestMessage" part name="body" element="tns:ProvisioningTaskRequest"/ /message message name="ProvisioningTaskAckMessage" part name="body" type="xsd:string"/ /message portType name="ProvisioningTaskRequestPortType" operation name="ProvisioningTaskRequestOperation" input message="tns:ProvisioningTaskRequestMessage"/ output message="tns:ProvisioningTaskAckMessage"/ /operation /portType binding name="ProvisioningTaskRequestSoapBinding" type="tns:ProvisioningTaskRequestPortType" soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/ operation name="ProvisioningTaskRequestOperation" soap:operation soapAction="ProvidentProvisioningTNS/ProvisioningTaskRequestOperation"/ input soap:body use="literal"/ /input output soap:body use="literal"/ /output /operation /binding service name="ProvisioningService" documentationProvident Provisioning Service/documentation port name="ProvisioningTaskRequestPort"
RE: No such operation error - malformed WSDL?
Title: Message Feng no it didn't cure the problemI'm afraid. I've seen posts before about the same problem, but there doesn't seem to be an obvious remedy. If I knewfor sure that this is a problem with theWSDL then I would be almost happy knowing that, and I could persevere in trying to cure it -but at the moment I am wondering whether it is Axis itself, or some configuration problem. I have heard that there are problems with Axis and 'doc/lit' style, and that it is better to use 'wrapped', but I am constrained to what our customer wants. At this stage I really don't want to ditch Axis and look for another SOAP engine ... :-/ -Original Message-From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] Sent: 15 June 2005 17:03To: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Did it fix your problem ? WSDL2java probable doesn't pay attention onto the location line. -Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 11:57 AMTo: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? This is the generated deployment file. Maybe it needs a description of the missing operation? If so, I wonder why the WSDL2Java did not generate this? deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" !-- Services from ProvisioningService WSDL service -- service name="ProvisioningTaskRequestPort" provider="java:RPC" style="document" use="literal" parameter name="wsdlTargetNamespace" value="urn:ProvidentProvisioningTNS"/ parameter name="wsdlServiceElement" value="ProvisioningService"/ parameter name="wsdlServicePort" value="ProvisioningTaskRequestPort"/ parameter name="className" value="ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingSkeleton"/ parameter name="wsdlPortType" value="ProvisioningTaskRequestPortType"/ parameter name="allowedMethods" value="*"/ typeMapping xmlns:ns="urn:ProvidentProvisioningTNS" qname="ns:ProvisioningTaskRequest" type="java:ProvidentProvisioningTNS._ProvisioningTaskRequest" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" / /service/deployment -Original Message-From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] Sent: 15 June 2005 16:22To: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Patrick: Can you replace the location line in your wsdl with the following line and regenerate stub and skeleton ? soap:address location="http://localhost:8880/axis/services/ProvisioningTaskRequestPort" Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 10:37 AMTo: axis-user@ws.apache.orgSubject: No such operation error - malformed WSDL? Hi I have received aWSDL from a customer.The style is document/literal.The stubs/skeleton are generatedfine when WSDL2Java is run, buta 'no such operation'error appears when the client code attempts the remote call with the bean. Is there something incorrect in the WSDL that has caused the generatedWSDDdeploymentfile to be incomplete? Many thanks for any help that can be provided. Data is below. Regards Patrick Quinn error text Exception in thread "main" AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation apos;ProvisioningTaskRequestapos;faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: No such operation amp;apos;ProvisioningTaskRequestamp;apos;faultActor: faultNode: faultDetail: No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) . . . at org.apache.axis.client.Call.invoke(Call.java:1691) at ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingStub.provisioningTaskRequestOperation(ProvisioningTaskRequestSoapBindingStub.java:140) at ProvidentProvisioningTNS.Main2.main(Main2.java:63) No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)etc. The WSDL looks like this (I suspect it is based on the examplefound atwww.w3.org/TR/wsdl): ?xml version="1.0" encoding="UTF-8"?wsdl:definitions
RE: No such operation error - malformed WSDL?
Title: Message Pat: Too bad to hear that. Don't give up. In my case ( Axis + Tomcat 5 ), the soapAction is always "" in WSDL. What I did is come upa very basic Java interface and let Java2WSDL to generate a base WSDL. I then enhance the WSDL. I noticed that the soapAction is "" in the based WSDL created by Java2WSDL. However, the soapAction in your WSDL is not "". Not sure whether that will affect the dispatch process. Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 12:11 PMTo: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Feng no it didn't cure the problemI'm afraid. I've seen posts before about the same problem, but there doesn't seem to be an obvious remedy. If I knewfor sure that this is a problem with theWSDL then I would be almost happy knowing that, and I could persevere in trying to cure it -but at the moment I am wondering whether it is Axis itself, or some configuration problem. I have heard that there are problems with Axis and 'doc/lit' style, and that it is better to use 'wrapped', but I am constrained to what our customer wants. At this stage I really don't want to ditch Axis and look for another SOAP engine ... :-/ -Original Message-From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] Sent: 15 June 2005 17:03To: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Did it fix your problem ? WSDL2java probable doesn't pay attention onto the location line. -Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 11:57 AMTo: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? This is the generated deployment file. Maybe it needs a description of the missing operation? If so, I wonder why the WSDL2Java did not generate this? deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" !-- Services from ProvisioningService WSDL service -- service name="ProvisioningTaskRequestPort" provider="java:RPC" style="document" use="literal" parameter name="wsdlTargetNamespace" value="urn:ProvidentProvisioningTNS"/ parameter name="wsdlServiceElement" value="ProvisioningService"/ parameter name="wsdlServicePort" value="ProvisioningTaskRequestPort"/ parameter name="className" value="ProvidentProvisioningTNS.ProvisioningTaskRequestSoapBindingSkeleton"/ parameter name="wsdlPortType" value="ProvisioningTaskRequestPortType"/ parameter name="allowedMethods" value="*"/ typeMapping xmlns:ns="urn:ProvidentProvisioningTNS" qname="ns:ProvisioningTaskRequest" type="java:ProvidentProvisioningTNS._ProvisioningTaskRequest" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" / /service/deployment -Original Message-From: Feng Xie (fxie) [mailto:[EMAIL PROTECTED] Sent: 15 June 2005 16:22To: axis-user@ws.apache.orgSubject: RE: No such operation error - malformed WSDL? Patrick: Can you replace the location line in your wsdl with the following line and regenerate stub and skeleton ? soap:address location="http://localhost:8880/axis/services/ProvisioningTaskRequestPort" Feng From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 10:37 AMTo: axis-user@ws.apache.orgSubject: No such operation error - malformed WSDL? Hi I have received aWSDL from a customer.The style is document/literal.The stubs/skeleton are generatedfine when WSDL2Java is run, buta 'no such operation'error appears when the client code attempts the remote call with the bean. Is there something incorrect in the WSDL that has caused the generatedWSDDdeploymentfile to be incomplete? Many thanks for any help that can be provided. Data is below. Regards Patrick Quinn error text Exception in thread "main" AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalExceptionfaultSubcode: faultString: No such operation apos;ProvisioningTaskRequestapos;faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFaultfaultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException faultSubcode: faultString: No such operation amp;apos;ProvisioningTaskRequestamp;apos;faultActor: faultNode: faultDetail: No such operation 'ProvisioningTaskRequest' at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) . . . at
re: javax.wsdl.extensions.ExtensibilityElement not found in Java2WsdlAntTask
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Is this a known problem in Axis 1.2.1? I just tried to compile my webservices and I got this error. - -- Love is mutual self-giving that ends in self-recovery. Fulton Sheen James Black[EMAIL PROTECTED] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCsFMZikQgpVn8xrARAiJJAJ9a5dwoJMVHq3h+dZ0tLi0iv2uLsQCcD902 u9BNUT1FyZ4X1hVqykjIiAY= =rc77 -END PGP SIGNATURE-
Re: SOPAPart is not beeing processed ?
For everyone, who's still interested in the solution: It happens to be a problem with the os: - Re: SecureRandom on Linux Author: mbjones Jul 23, 2004 1:15 PM (reply 1 of 1) I ran into the same problem with JDK 1.4.1_01 and JDK 1.4.2_05 running on Redhat Linux using kernel 2.4.9. After running the issue in the debugger for a while, I found it was always hanging on a read in a native method while trying to generate a secure seed in sun.security.provider.SeedGenerator which is called from sun.security.provider.SecureRandom. I got this error whether I was calling SecureRandom directly, or whether it was just used by the SSL libraries in setting up a secure SSL connection with a server. See below for a stack trace of where it was hanging. The problem seemed to be that the security provider used /dev/random as an entropy generator, and it somehow wasn't working. By editing the $JAVA_HOME/jre/lib/security/java.security file and changing the property: securerandom.source=file:/dev/random to: securerandom.source=file:/dev/urandom the problem disappeared for me. So there seems to be some issue with the OS access to /dev/random. Hope this helps with your issue.
Re: javax.wsdl.extensions.ExtensibilityElement not found in Java2WsdlAntTask
Does your WSDL contain a non-standard extensibility element? Anne On 6/15/05, James Black [EMAIL PROTECTED] wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Is this a known problem in Axis 1.2.1? I just tried to compile my webservices and I got this error. - -- Love is mutual self-giving that ends in self-recovery. Fulton Sheen James Black[EMAIL PROTECTED] -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.1 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCsFMZikQgpVn8xrARAiJJAJ9a5dwoJMVHq3h+dZ0tLi0iv2uLsQCcD902 u9BNUT1FyZ4X1hVqykjIiAY= =rc77 -END PGP SIGNATURE-
RE: Complex type / Javabean design
OK for the sentence ! Now, as i said before, if i remove the indexed property setter/getter (or in the original javabean, or hand-coding the wsdl), and just let the whole array getter/setter, the wsdl properly describes the sequence of complex type, and the serialization/deserialization seems to work. With this complex type, describing an 'order' with a string and an array of products : complexType name=ArrayOfProduct sequence element name=item type=impl:Product minOccurs=0 maxOccurs=unbounded/ /sequence /complexType ... complexType name=Order sequence element name=products nillable=true type=impl:ArrayOfProduct/ element name=string nillable=true type=xsd:string/ /sequence /complexType The wsdl2java for the client produces a class with the same getter/setter that has my original javabean : public my.service3.CompositeBean[] getCompositeBeans() { return compositeBeans; } public void setCompositeBeans(my.service3.CompositeBean[] compositeBeans) { this.compositeBeans = compositeBeans; } And, on the server side, my javabean setter/getter are properly used too by the serializer/deserializer. So, it works ! But, is this the best or unique way to represent the 1-n associations ? Thanks again for your comments. -Original Message- From: Davanum Srinivas [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 5:41 PM To: axis-user@ws.apache.org Subject: Re: Complex type / Javabean design hehehe...WSDL First! :) -- dims On 6/15/05, Ephemeris Lappis [EMAIL PROTECTED] wrote: Hello. This is a simple, perhaps stupid, question about how to design some kind of javabeans to be good complex types for the wsdl and soap translation. I have done some basic tests with simple flat, structure like javabeans with primitive or 1-1 aggregated complex types. All this seems to work with Axis. Now, i'm looking for more complex types with 1-n agregations. For instance an Order and Product line. The javabean convention let the bean designer provide both agregate getter and setter, and indexed properties ones. In my previous example, operations on my Order object could be something like : ProductLine[] getProductLines() void setProductLines(ProductLine[] pl) to set or get the whole agregate. But indexed properties style methods could also be : ProductLine getProductLine(int index) void setProductLine(ProductLine pl, int index) I've tested something like that with axis (1.2 final), and the java2wsdl produces a strange result. The Order type references two pseudo-attributes : one for the array, mapping the first setter/getter set, and another one for the indexed property... In this case, or similar cases, does it make sense to design (or reuse) such javabeans. If yes, is there any way to use the standard java2wsdl translation (I know someone is going to quickly answer to wsdl it first !), and standard serializers ? Thanks for your comments. -- Ephemeris Lappis -- Davanum Srinivas -http://blogs.cocoondev.org/dims/
Re: Complex type / Javabean design
yes. that looks right. -- dims On 6/15/05, Ephemeris Lappis [EMAIL PROTECTED] wrote: OK for the sentence ! Now, as i said before, if i remove the indexed property setter/getter (or in the original javabean, or hand-coding the wsdl), and just let the whole array getter/setter, the wsdl properly describes the sequence of complex type, and the serialization/deserialization seems to work. With this complex type, describing an 'order' with a string and an array of products : complexType name=ArrayOfProduct sequence element name=item type=impl:Product minOccurs=0 maxOccurs=unbounded/ /sequence /complexType ... complexType name=Order sequence element name=products nillable=true type=impl:ArrayOfProduct/ element name=string nillable=true type=xsd:string/ /sequence /complexType The wsdl2java for the client produces a class with the same getter/setter that has my original javabean : public my.service3.CompositeBean[] getCompositeBeans() { return compositeBeans; } public void setCompositeBeans(my.service3.CompositeBean[] compositeBeans) { this.compositeBeans = compositeBeans; } And, on the server side, my javabean setter/getter are properly used too by the serializer/deserializer. So, it works ! But, is this the best or unique way to represent the 1-n associations ? Thanks again for your comments. -Original Message- From: Davanum Srinivas [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 5:41 PM To: axis-user@ws.apache.org Subject: Re: Complex type / Javabean design hehehe...WSDL First! :) -- dims On 6/15/05, Ephemeris Lappis [EMAIL PROTECTED] wrote: Hello. This is a simple, perhaps stupid, question about how to design some kind of javabeans to be good complex types for the wsdl and soap translation. I have done some basic tests with simple flat, structure like javabeans with primitive or 1-1 aggregated complex types. All this seems to work with Axis. Now, i'm looking for more complex types with 1-n agregations. For instance an Order and Product line. The javabean convention let the bean designer provide both agregate getter and setter, and indexed properties ones. In my previous example, operations on my Order object could be something like : ProductLine[] getProductLines() void setProductLines(ProductLine[] pl) to set or get the whole agregate. But indexed properties style methods could also be : ProductLine getProductLine(int index) void setProductLine(ProductLine pl, int index) I've tested something like that with axis (1.2 final), and the java2wsdl produces a strange result. The Order type references two pseudo-attributes : one for the array, mapping the first setter/getter set, and another one for the indexed property... In this case, or similar cases, does it make sense to design (or reuse) such javabeans. If yes, is there any way to use the standard java2wsdl translation (I know someone is going to quickly answer to wsdl it first !), and standard serializers ? Thanks for your comments. -- Ephemeris Lappis -- Davanum Srinivas -http://blogs.cocoondev.org/dims/ -- Davanum Srinivas -http://blogs.cocoondev.org/dims/
WSDL2Java generates bad WSDD file
After processing my Document/Literal WSDL file, I find the following in my WSDD: typeMapping xmlns:ns="http://schemas.microsoft.com/windows/2004/09/wdp/print" qname="ns:JobValuesTypeJobProcessingJobFinishingsJobStapleStapleAngle" type="java:com.microsoft.schemas.windows._2004._09.wdp.print.JobValuesTypeJobProcessingJobFinishingsJobStapleStapleAngle" serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" encodingStyle="" / The qname attribute valuedoesn't seem conform to QName syntax. Am I misreading the specification? Also, when I try to deploy the service the AdminClient responds with "Done processing" and no error messages indicating that deployment failed. However when I look for the deployed service, its deployment descriptor is not in tomcat's webapps\axis\WEB-INF\server-config.wsdd file. The Admin serviceis failing silently and I've been unable to get log messages to debug the problem. Any suggestions? I'm using axis-1_2RC2, JDK 1.5, tomcat 5.0 on Windows XP. TIA, Ian
Interesting Error
I have created a service with the following client: public class MyClient { public static void main(String [] args) throws Exception { Options options = new Options(args); String endpoint = http://localhost:; + options.getPort() + /axis/dummy/MyService.jws; Service service = new Service(); Call call= (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName( checkServer ); call.addParameter( ipaddress, XMLType.XSD_STRING, ParameterMode.IN ); call.setReturnType( XMLType.XSD_STRING ); System.out.println( call.invoke( new Object [] { args[1] }) ); } } The service uses threads and a network connection to work correctly. I get the following error message: Exception in thread main AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}hostname:myhost.myserver.edu java.lang.reflect.InvocationTargetException 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(DeserializationContext.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$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(SAXParser.java:375) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645) at org.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.apache.axis.message.addressing.handler.AddressingHandler.processClientResponse(AddressingHandler.java:305) at org.apache.axis.message.addressing.handler.AddressingHandler.invoke(AddressingHandler.java:110) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:190) at org.apache.axis.client.Call.invokeEngine(Call.java:2726) at org.apache.axis.client.Call.invoke(Call.java:2709) at org.apache.axis.client.Call.invoke(Call.java:2385) at org.apache.axis.client.Call.invoke(Call.java:2308) at org.apache.axis.client.Call.invoke(Call.java:1765) The WSDL for my code is the following: wsdl:definitions targetNamespace=http://localhost:8080/axis/dummy/MyService.jws; - !-- WSDL created by Apache Axis version: 1.2 Built on May 03, 2005 (02:20:24 EDT) -- - wsdl:message name=checkServerResponse wsdl:part name=checkServerReturn type=xsd:string/ /wsdl:message - wsdl:message name=checkServerRequest wsdl:part name=ipaddress type=xsd:string/ /wsdl:message - wsdl:portType name=MyService - wsdl:operation name=checkServer parameterOrder=ipaddress wsdl:input message=impl:checkServerRequest name=checkServerRequest/ wsdl:output message=impl:checkServerResponse name=checkServerResponse/ /wsdl:operation /wsdl:portType - wsdl:binding name=MyServiceSoapBinding type=impl:ArinWhois wsdlsoap:binding style=rpc transport=http://schemas.xmlsoap.org/soap/http/ - wsdl:operation name=checkServer wsdlsoap:operation soapAction=/ - wsdl:input name=checkServerRequest wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/; namespace=http://DefaultNamespace; use=encoded/ /wsdl:input - wsdl:output name=checkServerResponse wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/; namespace=http://localhost:8080/axis/dummy/MyService.jws; use=encoded/ /wsdl:output /wsdl:operation /wsdl:binding - wsdl:service name=MyServiceService - wsdl:port binding=impl:MyServiceSoapBinding name=MyService wsdlsoap:address location=http://localhost:8080/axis/dummy/MyService.jws/ /wsdl:port /wsdl:service /wsdl:definitions What could be causing this? I am sure it is my fault. JR __ Discover Yahoo! Get on-the-go sports
WSDL/Generated WSDL Discrepencies...
Heya, I'm fairly new to Axis, so hopefully I'm not missing something too obvious or have bad search skills(I've been searching and researching and haven't come up with an answer). I managed to get an example service using Axis/Castor (the example from the IBM site) working using the generated jars; a client java application using the generated client classes returns the right information. Per the example, there is an .xsd file whose namespace is imported into the WSDL. However, when my coworker captures the generated WSDL from the server using XMLSpy and .Net's wsdl.exe, it cannot define the return type (quote). Is there some way to expose the external schema file via the generated WSDL? We've noticed that if we imbed the information from the XSD file directly into the WSDL everything is all good, but I'm guessing that Castor requires the use of a separate Schema file. I've included the files below for reference. Thanks, Anna XSD === ?xml version=1.0 encoding=UTF-8? xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema; targetNamespace=http://w3.ibm.com/schemas/services/stockquote; xmlns=http://w3.ibm.com/schemas/services/stockquote; xsd:element name=quote xsd:complexType xsd:sequence xsd:element name=symbol type=xsd:string/ xsd:element name=volume type=xsd:integer/ xsd:element name=lastTrade type=lastTradeType/ xsd:element name=change type=changeType/ /xsd:sequence /xsd:complexType /xsd:element xsd:complexType name=changeType xsd:sequence xsd:element name=dollar type=xsd:float/ xsd:element name=percent type=xsd:float/ xsd:element name=positive type=xsd:boolean/ /xsd:sequence /xsd:complexType xsd:complexType name=lastTradeType xsd:sequence xsd:element name=price type=xsd:float/ xsd:element name=date type=xsd:long/ /xsd:sequence /xsd:complexType !-- Methods signatures -- xsd:element name=getStockQuote xsd:complexType xsd:sequence xsd:element name=symbol type=xsd:string/ /xsd:sequence /xsd:complexType /xsd:element xsd:element name=getStockQuoteResponse xsd:complexType xsd:sequence xsd:element ref=quote / /xsd:sequence /xsd:complexType /xsd:element /xsd:schema WSDL (ORIGINAL FILE) = definitions targetNamespace=http://w3.ibm.com/schemas/services/stockquote/wsdl; xmlns=http://schemas.xmlsoap.org/wsdl/; xmlns:tns=http://w3.ibm.com/schemas/services/stockquote/wsdl; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:types=http://w3.ibm.com/schemas/services/stockquote; xmlns:xsd=http://www.w3.org/2001/XMLSchema; types xsd:schema targetNamespace=http://w3.ibm.com/schemas/services/stockquote/wsdl; xmlns:types=xmlns:types xmlns:xsd=http://www.w3.org/2001/XMLSchema; xsd:import namespace=http://w3.ibm.com/schemas/services/stockquote; schemaLocation=../xsd/StockQuote.xsd/ /xsd:schema /types message name=getStockQuoteReq part name=parameters element=types:getStockQuote / /message message name=getStockQuoteResp part name=parameters element=types:getStockQuoteResponse / /message portType name=StockQuotePortType operation name=getStockQuote input message=tns:getStockQuoteReq / output message=tns:getStockQuoteResp / /operation /portType binding name=StockQuoteSOAPBinding type=tns:StockQuotePortType soap:binding style=document transport=http://schemas.xmlsoap.org/soap/http; / operation name=getStockQuote soap:operation style=document soapAction=getStockQuote / input soap:body use=literal / /input output soap:body use=literal / /output /operation /binding service name=StockQuoteService port name=StockQuoteSOAPPort binding=tns:StockQuoteSOAPBinding
RE: No such operation error - malformed WSDL?
Pat: It's a little strange to me that your deploy.wsdd ( which is generated from WSDL2java, I assume ) doesn't have operation def. You not only need add operation , perhaps need to add parameters for this operation. Here is a snippet from my deploy.wsdd: service name=SystemDataMgrPort provider=java:RPC style=document use=literal parameter name=wsdlTargetNamespace value=http://provision.xxx.yyy.com/wsdl/ parameter name=wsdlServiceElement value=ProvisionIF_Service/ parameter name=wsdlServicePort value=SystemDataMgrPort/ parameter name=className value=com.xxx.yyy.provision.wsdl.SystemDataMgrBindingImpl/ parameter name=wsdlPortType value=SystemDataMgr/ parameter name=typeMappingVersion value=1.1/ operation name=getApplicationSysData qname=getApplicationSysData soapAction= parameter qname=pns:soapReqHeader xmlns:pns=http://provision.xxx.yyy.com/types; type=tns:soapReqHeaderType xmlns:tns=http://provision.xxx.yyy.com/types; inHeader=true/ One thing I notice about your wsdl is it mixed type definition and element definition together. You might want to generate a simple wsdl from your java interface and get to know what does Axis tool like, then modify your wsdl. My wsdl has separate type definition and element definition and the generated deploy.wsdd works fine ( doesn't require any extra touch ). Hope it helps, Feng -Original Message- From: Patrick Quinn [mailto:[EMAIL PROTECTED] Sent: Wednesday, June 15, 2005 3:55 PM To: axis-user@ws.apache.org Subject: No such operation error - malformed WSDL? Thanks Anne, Feng You have both given me food for thought and I won't give up. Anne, I did try adding the operation definition as you suggested. See below: deployment xmlns=http://xml.apache.org/axis/wsdd/; xmlns:java=http://xml.apache.org/axis/wsdd/providers/java; !-- Services from ProvisioningService WSDL service -- parameter name=wsdlServicePort value=ProvisioningTaskRequestPort/ parameter name=className value=ProvidentProvisioningTNS.ProvisioningTa skRequestSoapBindingSkeleton/ parameter name=wsdlPortType value=ProvisioningTaskRequestPortType/ parameter name=allowedMethods value=*/ operation name=ProvisioningTaskRequestOperation qname=ns:ProvisioningTaskRequest / typeMapping xmlns:ns=urn:ProvidentProvisioningTNS qname=ns:ProvisioningTaskRequest type=java:ProvidentProvisioningTNS._ProvisioningTaskRequest serializer=org.apache.axis.encoding.ser.BeanSerializerFactory deserializer=org.apache.axis.encoding.ser.BeanDeserializerFactory encodingStyle= / /service /deployment But I now get the following error: Exception in thread main AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.apache.axis.InternalException: java.lang.Exception: Couldnapos;t find a matching Java operation for WSDD operation quot;ProvisioningTaskRequestOperationquot; (0 args) faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.apache.axis.InternalException: java.lang.Exception: Couldnamp ;apos;t find a matching Java operation for WSDD operation amp;quot;Provisioning TaskRequestOperationamp;quot; (0 args) faultActor: faultNode: faultDetail: org.apache.axis.InternalException: java.lang.Exception: Couldn't find a matching Java operation for WSDD operation quot;ProvisioningTaskRequestOperationquot; (0 args) Is this something obvious, or is it better to take Feng's advice and build from scratch using Java2WSDL? Thanks again, Pat -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Wed 15/06/2005 18:27 To: axis-user@ws.apache.org Cc: Subject: Re: No such operation error - malformed WSDL? Pat, You're correct -- you need to add an operation definition to your WSDD to help Axis map the ProvisioningTaskRequest message to the ProvisioningTaskRequestOperation method. The format of the operation definition is: operation name=ProvisioningTaskRequestOperation qname=ns:ProvisioningTaskRequest / (If you used wrapped style, you wouldn't have this problem.) Anne On 6/15/05, Feng Xie (fxie) [EMAIL PROTECTED] wrote: Pat: Too bad to hear that. Don't give up. In my case ( Axis + Tomcat 5 ), the soapAction is always in WSDL. What I did is come up a very basic Java interface and let Java2WSDL to generate a base WSDL. I then enhance the WSDL. I noticed that the soapAction is in the
Question about xsd:anyType arrays in doc/literal wrapped mode
Hello, First I would like to say thank you to everyone that has contributed to this list. While I have lurked and been helped a lot by information here, I have not had a chance up until now to say thanks, so, thanks. :) My question has to deal with arrays. I have looked over the archives, and a lot of these questions come up, but I never saw a definitive answer (or I missed it). A lot of these questions came up around the encoded to doc/literal transition threads. Basically, if I have an array that I want to go over the wire, and that contents of that array can be anything, why is it that if the contents are (coming from the Java side of things) a String, a Boolean and an Integer, I get the Found character data inside an array element while deserializing exception. If the array is xsd:anyType, does that still constrain it to one type out of the any? If not, can someone point me in the direction that I probably need to look to figure out why this is? Thanks much in advance, Mario-
RE: AdminClient Deployment problem, possibly user related
Hi, I've been trying to track down the solution to this problem for a week now and just wanted to let you know that I have solved it. I have noticed others with similar error messages, but never a reply to fix it. In my case though, it was my own fault, not Axis. So my solution may not fix all issues. It seems when the AdminService give a Service.userException, it means that Axis had some problem with something the user sent to the AdminService. It took a while for me to realise this. I was thinking it was a username issue. Especially when the fault detail mentions my machine name. In the end though, it was a version issue. When I started using Axis, I downloaded version 1.2 RC3. Then a week later, the final 1.2 version came out so I started using that. Unfortunately, it looks like I never updated the libraries in my Tomcat webapps. So I was trying to use the 1.2 final client with the 1.2 RC3 AdminService. Hope this helps someone else. It may justify my frustration over the last week. Thank you to all that tried to help. -- Steven Smith [EMAIL PROTECTED] Software Developer / Analyst Telephone: 03 6223 1999 Facsimile: 03 6223 1988 Web : www.geometry.com.au Address : 31 Salamanca Square, Battery Point, TAS 7004, Australia Postal : PO Box 844, Sandy Bay, TAS 7006, Australia -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Tuesday, 14 June 2005 9:34 AM To: Steven Smith Subject: Re: AdminClient Deployment problem, possibly user related You must remove the encodingStyle and namespace attributes from your soap:body definitions, and all your use attributes should be use=literal. Like this: soap:body use=literal / Anne On 6/13/05, Steven Smith [EMAIL PROTECTED] wrote: The WSDL: ?xml version=1.0? wsdl:definitions name=FTMapping targetNamespace=http://www.geometryit.com/WebService/Forestry/Mapping; xmlns=http://schemas.xmlsoap.org/wsdl/; xmlns:tns=http://www.geometryit.com/WebService/Forestry/Mapping; xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/; xmlns:xsd=http://www.w3.org/2001/XMLSchema; xmlns:gml=http://www.opengis.net/gml; xsd:schema targetNamespace=http://www.geometryit.com/WebService/Forestry/Mapping; xmlns=http://www.w3.org/2001/XMLSchema; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; !-- xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://www.w3.org/2001/XMLSchema file:/C:/Program%20Files/Exchanger%20XML%20Editor%203.0/types/XML%20Sc hema/V alidation/XMLSchema.xsd -- xsd:import namespace=http://www.opengis.net/gml; schemaLocation=feature.xsd / !-- Data Elements -- xsd:element name=attribute xsd:complexType xsd:sequence xsd:element name=name type=xsd:string minOccurs=1 maxOccurs=1 / xsd:element name=op type=xsd:string minOccurs=1 maxOccurs=1 / xsd:element name=value type=xsd:string minOccurs=0 maxOccurs=1 / /xsd:sequence /xsd:complexType /xsd:element xsd:element name=spatial xsd:complexType xsd:sequence xsd:element name=property type=xsd:string minOccurs=1 maxOccurs=1 / xsd:element name=relationship type=xsd:string minOccurs=1 maxOccurs=1 / xsd:choice xsd:element name=geometry type=gml:AbstractGeometryType minOccurs=1 maxOccurs=1 / xsd:element name=collection type=gml:GeometryCollectionType minOccurs=1 maxOccurs=1 / /xsd:choice /xsd:sequence /xsd:complexType /xsd:element xsd:group name=Expression xsd:choice xsd:element ref=tns:spatial / xsd:element ref=tns:attribute / xsd:element ref=tns:and / xsd:element ref=tns:or / xsd:element ref=tns:not / /xsd:choice /xsd:group xsd:element name=and xsd:complexType xsd:sequence
Re: No such operation error - malformed WSDL?
I just grabbed the WSDL operation name, but perhaps your Java method name is different? The name attribute should specify the Java method name. Anne On 6/15/05, Patrick Quinn [EMAIL PROTECTED] wrote: Thanks Anne, Feng You have both given me food for thought and I won't give up. Anne, I did try adding the operation definition as you suggested. See below: deployment xmlns=http://xml.apache.org/axis/wsdd/; xmlns:java=http://xml.apache.org/axis/wsdd/providers/java; !-- Services from ProvisioningService WSDL service -- parameter name=wsdlServicePort value=ProvisioningTaskRequestPort/ parameter name=className value=ProvidentProvisioningTNS.ProvisioningTa skRequestSoapBindingSkeleton/ parameter name=wsdlPortType value=ProvisioningTaskRequestPortType/ parameter name=allowedMethods value=*/ operation name=ProvisioningTaskRequestOperation qname=ns:ProvisioningTaskRequest / typeMapping xmlns:ns=urn:ProvidentProvisioningTNS qname=ns:ProvisioningTaskRequest type=java:ProvidentProvisioningTNS._ProvisioningTaskRequest serializer=org.apache.axis.encoding.ser.BeanSerializerFactory deserializer=org.apache.axis.encoding.ser.BeanDeserializerFactory encodingStyle= / /service /deployment But I now get the following error: Exception in thread main AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.apache.axis.InternalException: java.lang.Exception: Couldnapos;t find a matching Java operation for WSDD operation quot;ProvisioningTaskRequestOperationquot; (0 args) faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.apache.axis.InternalException: java.lang.Exception: Couldnamp ;apos;t find a matching Java operation for WSDD operation amp;quot;Provisioning TaskRequestOperationamp;quot; (0 args) faultActor: faultNode: faultDetail: org.apache.axis.InternalException: java.lang.Exception: Couldn't find a matching Java operation for WSDD operation quot;ProvisioningTaskRequestOperationquot; (0 args) Is this something obvious, or is it better to take Feng's advice and build from scratch using Java2WSDL? Thanks again, Pat -Original Message- From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] Sent: Wed 15/06/2005 18:27 To: axis-user@ws.apache.org Cc: Subject: Re: No such operation error - malformed WSDL? Pat, You're correct -- you need to add an operation definition to your WSDD to help Axis map the ProvisioningTaskRequest message to the ProvisioningTaskRequestOperation method. The format of the operation definition is: operation name=ProvisioningTaskRequestOperation qname=ns:ProvisioningTaskRequest / (If you used wrapped style, you wouldn't have this problem.) Anne On 6/15/05, Feng Xie (fxie) [EMAIL PROTECTED] wrote: Pat: Too bad to hear that. Don't give up. In my case ( Axis + Tomcat 5 ), the soapAction is always in WSDL. What I did is come up a very basic Java interface and let Java2WSDL to generate a base WSDL. I then enhance the WSDL. I noticed that the soapAction is in the based WSDL created by Java2WSDL. However, the soapAction in your WSDL is not . Not sure whether that will affect the dispatch process. Feng __ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email __
Re: WSDL2Java generates bad WSDD file
You should use Axis 1.2 Final -- or better yet, Axis 1.2.1. On 6/15/05, Halsema, Aillil I [EMAIL PROTECTED] wrote: After processing my Document/Literal WSDL file, I find the following in my WSDD: typeMapping xmlns:ns=http://schemas.microsoft.com/windows/2004/09/wdp/print; qname=ns:JobValuesTypeJobProcessingJobFinishingsJobStapleStapleAngle type=java:com.microsoft.schemas.windows._2004._09.wdp.print.JobValuesTypeJobProcessingJobFinishingsJobStapleStapleAngle serializer=org.apache.axis.encoding.ser.SimpleSerializerFactory deserializer=org.apache.axis.encoding.ser.SimpleDeserializerFactory encodingStyle= / The qname attribute value doesn't seem conform to QName syntax. Am I misreading the specification? Also, when I try to deploy the service the AdminClient responds with Done processing and no error messages indicating that deployment failed. However when I look for the deployed service, its deployment descriptor is not in tomcat's webapps\axis\WEB-INF\server-config.wsdd file. The Admin service is failing silently and I've been unable to get log messages to debug the problem. Any suggestions? I'm using axis-1_2RC2, JDK 1.5, tomcat 5.0 on Windows XP. TIA, Ian
Re:Interesting Error
MyService is in the package dummy?If this,then generated wsdl's targetNamespace should be targetNamespace=http://localhost:8080/axis/MyService.jws; I am not sure of it,but you can try it! Best Regards, Robert Zhang Email:[EMAIL PROTECTED] Tel:86-010-62014411-2437 - - : J R [EMAIL PROTECTED] : , 16, 2005 3:16 : Interesting Error I have created a service with the following client: public class MyClient { public static void main(String [] args) throws Exception { Options options = new Options(args); String endpoint = http://localhost:; + options.getPort() + /axis/dummy/MyService.jws; Service service = new Service(); Call call= (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName( checkServer ); call.addParameter( ipaddress, XMLType.XSD_STRING, ParameterMode.IN ); call.setReturnType( XMLType.XSD_STRING ); System.out.println( call.invoke( new Object [] { args[1] }) ); } } The service uses threads and a network connection to work correctly. I get the following error message: Exception in thread main AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}hostname:myhost.myserver.edu java.lang.reflect.InvocationTargetException 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(DeserializationContext.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$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(SAXParser.java:375) at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645) at org.apache.axis.Message.getSOAPEnvelope(Message.java:424) at org.apache.axis.message.addressing.handler.AddressingHandler.processClientResponse(AddressingHandler.java:305) at org.apache.axis.message.addressing.handler.AddressingHandler.invoke(AddressingHandler.java:110) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.client.AxisClient.invoke(AxisClient.java:190) at org.apache.axis.client.Call.invokeEngine(Call.java:2726) at org.apache.axis.client.Call.invoke(Call.java:2709) at org.apache.axis.client.Call.invoke(Call.java:2385) at org.apache.axis.client.Call.invoke(Call.java:2308) at org.apache.axis.client.Call.invoke(Call.java:1765) The WSDL for my code is the following: wsdl:definitions targetNamespace=http://localhost:8080/axis/dummy/MyService.jws; - !-- WSDL created by Apache Axis version: 1.2 Built on May 03, 2005 (02:20:24 EDT) -- - wsdl:message name=checkServerResponse wsdl:part name=checkServerReturn type=xsd:string/ /wsdl:message - wsdl:message name=checkServerRequest wsdl:part name=ipaddress type=xsd:string/ /wsdl:message - wsdl:portType name=MyService - wsdl:operation name=checkServer parameterOrder=ipaddress wsdl:input message=impl:checkServerRequest name=checkServerRequest/ wsdl:output message=impl:checkServerResponse name=checkServerResponse/ /wsdl:operation /wsdl:portType - wsdl:binding name=MyServiceSoapBinding type=impl:ArinWhois wsdlsoap:binding style=rpc transport=http://schemas.xmlsoap.org/soap/http/ - wsdl:operation name=checkServer wsdlsoap:operation soapAction=/ - wsdl:input name=checkServerRequest wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/; namespace=http://DefaultNamespace; use=encoded/ /wsdl:input - wsdl:output name=checkServerResponse wsdlsoap:body encodingStyle=http://schemas.xmlsoap.org/soap/encoding/; namespace=http://localhost:8080/axis/dummy/MyService.jws;
Re: Webservice GateWay How to implement ?
Krthekeyan, Not too clear on what you are wanting to do. I had a requirement for hiding the actual endpoint of a ws call from the user. What I have done is change the wsdl file endpoint to point to a gateway. The gateway looks up the real endpoint for the service, the alters the envelope and invokes the service. Is this what you are trying to do? Wayne --- Krthekeyan Suriyanarayanan [EMAIL PROTECTED] wrote: Hi all, I am using tomcat 5.x and axis 1.2 for my webservices . I want to implement webservice Gateway now , how do i proceed with it. can you give me some clue of how tostart with it or some resource to look it because as the way it is explained in Ibm alphaworks, I understand that it is the functionality provided by application server is that so? plz correct me if I am wrong . Thanks and Regards, krthekeyan.s Send instant messages to your online friends http://au.messenger.yahoo.com
Re: collection of complex types
If you define your object in XML Schema, .NET will automatically map it to a .NET object for you. Anne On 6/15/05, Carolyn Vo [EMAIL PROTECTED] wrote: We are trying to figure out how to access from C# an object that has a collection of complex types, which in turn includes a collection of complex types. These complex types are inner classes of the parent object. Is this possible? Thanks, Carolyn
RE: collection of complex types
Hello. With few details about your model, i'm not sure my answer will help you... But i'm currently doing new tests with different kinds of objects, and particularly agregations with arrays of complex types that also have arrays of objects, etc... It seems that all that fnally works rather well with axis. First, instead of collections (or similar classes), you should design your exchange objects with arrays : arrays are easiy translated to and from xml schema. Then, avoid complex objects dependancies, such as inheritance. Indeed, future clients of your services, because oftheirlanguage ortools, will not be able to handle them. I'd prefer to clearly separate my web services from the applications they give access to. The applications components generallyprovide complex classes that use all their native language facilities. The web service layer provides a simplified view of this model, with a different 'grain', and with flat complex types... Did that help you ? Regards. --Ephemeris Lappis -Original Message-From: Carolyn Vo [mailto:[EMAIL PROTECTED]Sent: Wednesday, June 15, 2005 9:43 PMTo: axis-user@ws.apache.orgSubject: collection of complex types We are trying to figure out how to access from C# an object that has a collection of complex types, which in turn includes a collection of complex types. These complex types are inner classes of the parent object. Is this possible? Thanks, Carolyn