Re: Question about Soap Message with Attachment
Response from Mark Whitlock cc'd - Hi Yuan, There are at least 2 possible ways of describing attachments in the WSDL. Attachments can be described using the WSDL MIME extensions (like mime:multipartRelated) or using elements under the http://xml.apache.org/xml-soap namespace. WS-I allows either. Axis C++ currently only supports elements under the http://xml.apache.org/xml-soap namespace. The Attachment1.wsdl should be correct. I don't know why you are having the DataHandler not defined problem. The Attachment1.wsdl has the line import namespace=http://xml.apache.org/xml-soap/ which should pull in the DataHandler definition. What level of code are you running? Does the problem happen on the latest level? In the client, request attachments are supported, but response attachments are not. I added in the attachment support in the client, and I would have liked to support response attachments, WSDL MIME extensions, etc, but unfortunately I did not have sufficient time. I am not able to spend much time on Axis C++, so I may not respond immediately to any further questions. Mark Mark Whitlock yuan [EMAIL PROTECTED] 18/10/2005 01:34 Please respond to Apache AXIS C User List To axis-c-user@ws.apache.org cc Subject Question about Soap Message with Attachment Hi, I have been looking at how to write a WSDL file to use Soap Message with Attachment. I have found examples on the web using mime:multipartRelated, example below: message name=Request part name=photo type=xsd:hexBinary/ /message message name=Response part name=status type=xsd:string/ /message wsdl:operation name=addPhoto wsdl:input mime:multipartRelated mime:part soap:body use=literal/ /mime:part mime:part mime:content part=photo type=image/jpeg/ /mime:part /mime:multipartRelated /wsdl:input wsdl:output mime:multipartRelated mime:part soap:body use=literal/ /mime:part mime:part mime:content part=status type=text/plain/ /mime:part /mime:multipartRelated /wsdl:output /wsdl:operation NOTE: I am not sure this is how you describe parts relate to mime attachment types, But without this, there will be NULLPointerException in symboltable. message name=Request part name=photo type=xsd:hexBinary/ /message This seems to describe the structure of the soap message correctly with respect to the documentation on W3C. SoapAttachment* files uses similar structure as well. I tried using this with WSDL2WS, but the generated skeleton and stub don't use Attachments at all. It will just have a function (in this case addPhoto), it just treats it as having input xsd:hexBinary and output xsd:string, no attachment functions used. I have also found the file under tests directory in the repository: http://svn.apache.org/repos/test/webservices/axis1/trunk/c/tests/auto_build/ testcases/wsdls/Attachment1.wsdl which also uses attachments. When I try to run WSDL2WS on it, it returns the following error: Type {http://xml.apache.org/xml-soap}DataHandler is referenced but not defined. (basically for all types using http://xml.apache.org/xml-soap namespace). I am not sure how this works but is there suppose to be a schema defined for the DataHandler or any other attachment type? Am I supposes to define it myself? Also does WSDL2WS handle multiple Attachments as output? Can anyone point me in the right direction? Any help is greatly appreciated. Thanks in Advance. Regards, Yuan -- Yuan Liu [EMAIL PROTECTED]
Deployment issues on OpenVMS
Hi, I'm running Apache 1.3-1, Tomcat 4.1.24 and Axis 1.1 under Java 1.4.2-P2 on OpenVMS 7.3-1. These all have been installed as dowloaded from the HP website, without extensive configuration, so rather out-of-the-box. All the examples can be run nicely. Collegues running in a .NET environment obtain the right answers when they access these services using the same URL's as I do from my browser. These collegues have an application that communicates with a TRU64 machine for getting data, and they want to use the same client application to retrieve similar data from the VMS box. However, I cannot use the TRU64 java code because the data is completely different (storage, lyaout, codes). They sent me the WSDL file from the Unix application, from which I could create the java sources that would form the webservices, using WSDL2Java. The generation process also creates a deploy.wsdd and undeploy.wsdd. I have added code where required and could compile all without errror. However, when using these the services do not show up at all: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd (the quotes are required since VMS is non case-senistive if non-quoted). It tells me it processes the file, no problems at all, but the service appears to be non-existing. I had problems on this before: $ set def amazone_ws:[00] ! which is the root where the code started (the web application path starts here) $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd says it cannot find the file to process, but $ set def [.amazone.ws] ! which is the same location amazone-ws:[00] refers to! $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd succeeded - but with an error as above. However, this is considered a minor issue. Above is the same on a 7.3-2 system, so the OS version is not the problem. Stopping and starting AXIS makes no difference, nor did stopping and restarting Tomcat. Even worse: all of a sudden, even this failed: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd Processing file /amazone_src/deploy.wsdd Exception:: org.apache.axis.deployment.wsdd.WSDDException: javax.xml.rpc.JAXRPCException: Null serializer factory specified. javax.xml.rpc.JAXRPCException: Null serializer factory specified. at org.apache.axis.encoding.TypeMappingImpl.register(TypeMappingImpl.java) at org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping(WSDDServic e.java) at org.apache.axis.deployment.wsdd.WSDDService.initTMR(WSDDService.java) at org.apache.axis.deployment.wsdd.WSDDService.init(WSDDService.java) at org.apache.axis.deployment.wsdd.WSDDDeployment.init(WSDDDeployment.java) at org.apache.axis.deployment.wsdd.WSDDDocument.init(WSDDDocument.java) at org.apache.axis.utils.Admin.processWSDD(Admin.java) at org.apache.axis.utils.Admin.process(Admin.java) at org.apache.axis.utils.Admin.AdminService(Admin.java) ... I'm not sure if stopping and starting of Tomcat has influenced this (is shouldn't). Later, I stopped Axis, stopped Tomcat and started it again, and found THIS problem was gone However, deployment of the service still is not possible. One thing I noticed, just for completeness: WSDL2Java creates a file _GetConfigurationRequest_GetConfigurationResult.java - containing the code of the same class. The filename is over 39 characters, so it will be truncated to 39 - causing trouble in building the service. I changed the name of the class and file to _getConfRequest_GetConfResult - and did the same where referenced in both other (generated) java code to get it compiled. I did change the reference to this class in deploy.wsdd but that did not solve the problem - nor did it contribute to the last issue, since restoring the original file did still trigger the WSDDExecption shown. So I doubt that would be a cause of trouble. All help is welcome - I'm rather new on this technique. WIllem Disclaimer: The information contained in this E-mail and its attachments is confidential and may be legally privileged. It is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. If you are not the intended recipient you are hereby notified that any disclosure, copying, distribution or taking any action in reliance of the contents of this E-mail and any attachments is strictly prohibited and may be unlawful. The CIP or ISC is neither liable for the proper and complete transmission of the information contained in this E-mail and any attachments nor for any delay in its receipt. If received in error, please contact The CIP or ISC on +31(0)522 72 quoting the name of the sender and the addressee and then delete it from your system. Please note that the The CIP or ISC does not accept any responsibility for viruses and it is your responsibility to scan the E-mail and attachments (if any). No contracts may be concluded on behalf of The CIP or ISC by means of E-mail communications.
RE: Deployment issues on OpenVMS
Did it create an entry in your server-config.wsdd file? I think that's all the admin client does; you could just as well copy and paste the XML into server-config.wsdd yourself. It's worth trying this at least to see if your service works. Regards, Sunil D'Monte Tavant Technologies http://www.tavant.com -Original Message- From: Willem Grooters [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 12:37 To: 'axis-user@ws.apache.org' Subject: Deployment issues on OpenVMS Hi, I'm running Apache 1.3-1, Tomcat 4.1.24 and Axis 1.1 under Java 1.4.2-P2 on OpenVMS 7.3-1. These all have been installed as dowloaded from the HP website, without extensive configuration, so rather out-of-the-box. All the examples can be run nicely. Collegues running in a .NET environment obtain the right answers when they access these services using the same URL's as I do from my browser. These collegues have an application that communicates with a TRU64 machine for getting data, and they want to use the same client application to retrieve similar data from the VMS box. However, I cannot use the TRU64 java code because the data is completely different (storage, lyaout, codes). They sent me the WSDL file from the Unix application, from which I could create the java sources that would form the webservices, using WSDL2Java. The generation process also creates a deploy.wsdd and undeploy.wsdd. I have added code where required and could compile all without errror. However, when using these the services do not show up at all: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd (the quotes are required since VMS is non case-senistive if non-quoted). It tells me it processes the file, no problems at all, but the service appears to be non-existing. I had problems on this before: $ set def amazone_ws:[00] ! which is the root where the code started (the web application path starts here) $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd says it cannot find the file to process, but $ set def [.amazone.ws] ! which is the same location amazone-ws:[00] refers to! $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd succeeded - but with an error as above. However, this is considered a minor issue. Above is the same on a 7.3-2 system, so the OS version is not the problem. Stopping and starting AXIS makes no difference, nor did stopping and restarting Tomcat. Even worse: all of a sudden, even this failed: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd Processing file /amazone_src/deploy.wsdd Exception:: org.apache.axis.deployment.wsdd.WSDDException: javax.xml.rpc.JAXRPCException: Null serializer factory specified. javax.xml.rpc.JAXRPCException: Null serializer factory specified. at org.apache.axis.encoding.TypeMappingImpl.register(TypeMappingI mpl.java) at org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping( WSDDServic e.java) at org.apache.axis.deployment.wsdd.WSDDService.initTMR(WSDDService.java) at org.apache.axis.deployment.wsdd.WSDDService.init(WSDDService.java) at org.apache.axis.deployment.wsdd.WSDDDeployment.init(WSDDDepl oyment.java) at org.apache.axis.deployment.wsdd.WSDDDocument.init(WSDDDocument.java) at org.apache.axis.utils.Admin.processWSDD(Admin.java) at org.apache.axis.utils.Admin.process(Admin.java) at org.apache.axis.utils.Admin.AdminService(Admin.java) ... I'm not sure if stopping and starting of Tomcat has influenced this (is shouldn't). Later, I stopped Axis, stopped Tomcat and started it again, and found THIS problem was gone However, deployment of the service still is not possible. One thing I noticed, just for completeness: WSDL2Java creates a file _GetConfigurationRequest_GetConfigurationResult.java - containing the code of the same class. The filename is over 39 characters, so it will be truncated to 39 - causing trouble in building the service. I changed the name of the class and file to _getConfRequest_GetConfResult - and did the same where referenced in both other (generated) java code to get it compiled. I did change the reference to this class in deploy.wsdd but that did not solve the problem - nor did it contribute to the last issue, since restoring the original file did still trigger the WSDDExecption shown. So I doubt that would be a cause of trouble. All help is welcome - I'm rather new on this technique. WIllem Disclaimer: The information contained in this E-mail and its attachments is confidential and may be legally privileged. It is intended solely for the use of the individual or entity to whom it is addressed and others authorized to receive it. If you are not the intended recipient you are hereby notified that any disclosure, copying, distribution or taking any action in reliance of the contents of this E-mail and any attachments is
Message Style Service
Hello, I want to do a Message style service because I want to send a XML document already created to the service and it returns another XML to me. I've seen in the Axis User's Guide that this type of service is the perfect ne to do this, because using this service the XML keeps unmodified, but it isn't in that way, that is, my XML is modified, when I create a SOAPBodyElement with a byte[] (which contains the XML file created) the XML-Document is modified by adding sevreal namespaces to all the elements Code: byte[] request; //An XML FIle ... Service service = new Service(); Call call= (Call) service.createCall(); call.setTargetEndpointAddress( new URL(http://localhost:8080/axis/services/Service;) ); SOAPBodyElement[] input = new SOAPBodyElement[1]; input[0] = new org.apache.axis.message.SOAPBodyElement(new ByteArrayInputStream(request)); call.invoke(input); How can I keep my XML file unmodified??? Thanks Vicente Guardiola __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es
Re: Message Style Service
show us all client/server code that you've wrote In data Tue, 18 Oct 2005 10:55:12 +0200, Vicente D. Guardiola Buitrago [EMAIL PROTECTED] ha scritto: Hello, I want to do a Message style service because I want to send a XML document already created to the service and it returns another XML to me. I've seen in the Axis User's Guide that this type of service is the perfect ne to do this, because using this service the XML keeps unmodified, but it isn't in that way, that is, my XML is modified, when I create a SOAPBodyElement with a byte[] (which contains the XML file created) the XML-Document is modified by adding sevreal namespaces to all the elements Code: byte[] request; //An XML FIle ... Service service = new Service(); Call call= (Call) service.createCall(); call.setTargetEndpointAddress( new URL(http://localhost:8080/axis/services/Service;) ); SOAPBodyElement[] input = new SOAPBodyElement[1]; input[0] = new org.apache.axis.message.SOAPBodyElement(new ByteArrayInputStream(request)); call.invoke(input); How can I keep my XML file unmodified??? Thanks Vicente Guardiola __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es -- Carmine Gargiulo Carmine Gargiulo usa il rivoluzionario client e-mail di Opera: http://www.opera.com/m2/ -- Email.it, the professional e-mail, gratis per te: http://www.email.it/f Sponsor: Prova a trovare la casa delle tue vacanze ideali, clicca qui Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=3535d=18-10
RE: Deployment issues on OpenVMS
It wasn't, so I did add it myself (assuming the right spot is in tomcat's [.webapps.axis] directory. I also added the jar files that contain the server's classes, but it seems non-existant still. Even after tomcat was restarted. in [.webapps.axis.classes] I found that the samples are not stored as .jar files but expanded. Would I need to expand the jar files, or specify them in stead of the full path: Currently, it is sepcified as: service name=OrganisatieWebServiceSoap provider=java:RPC style=wrapped use=literal parameter name=wsdlTargetNamespace value=http://politie.nl/webservices/xpol/organisatie/ parameter name=wsdlServiceElement value=OrganisatieWebService/ parameter name=wsdlServicePort value=OrganisatieWebServiceSoap/ parameter name=className value=nl.politie.webservices.xpol.organisatie.OrganisatieWebServiceSoapSkel eton/ parameter name=wsdlPortType value=OrganisatieWebServiceSoap/ parameter name=allowedMethods value=*/ The .jar files is named: OrganisatieWebService.jar, containing the path nl/politie/webservices/xpol/organisatie. There are a number of jars that hold calsses used in the application. The current system does NOT carry the domain politie.nl - just the nodename. Does that matter? Willem -Oorspronkelijk bericht- Van: Sunil D'Monte [mailto:[EMAIL PROTECTED] Verzonden: dinsdag 18 oktober 2005 10:07 Aan: 'axis-user@ws.apache.org' Onderwerp: RE: Deployment issues on OpenVMS Did it create an entry in your server-config.wsdd file? I think that's all the admin client does; you could just as well copy and paste the XML into server-config.wsdd yourself. It's worth trying this at least to see if your service works. Regards, Sunil D'Monte Tavant Technologies http://www.tavant.com -Original Message- From: Willem Grooters [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 12:37 To: 'axis-user@ws.apache.org' Subject: Deployment issues on OpenVMS Hi, I'm running Apache 1.3-1, Tomcat 4.1.24 and Axis 1.1 under Java 1.4.2-P2 on OpenVMS 7.3-1. These all have been installed as dowloaded from the HP website, without extensive configuration, so rather out-of-the-box. All the examples can be run nicely. Collegues running in a .NET environment obtain the right answers when they access these services using the same URL's as I do from my browser. These collegues have an application that communicates with a TRU64 machine for getting data, and they want to use the same client application to retrieve similar data from the VMS box. However, I cannot use the TRU64 java code because the data is completely different (storage, lyaout, codes). They sent me the WSDL file from the Unix application, from which I could create the java sources that would form the webservices, using WSDL2Java. The generation process also creates a deploy.wsdd and undeploy.wsdd. I have added code where required and could compile all without errror. However, when using these the services do not show up at all: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd (the quotes are required since VMS is non case-senistive if non-quoted). It tells me it processes the file, no problems at all, but the service appears to be non-existing. I had problems on this before: $ set def amazone_ws:[00] ! which is the root where the code started (the web application path starts here) $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd says it cannot find the file to process, but $ set def [.amazone.ws] ! which is the same location amazone-ws:[00] refers to! $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd succeeded - but with an error as above. However, this is considered a minor issue. Above is the same on a 7.3-2 system, so the OS version is not the problem. Stopping and starting AXIS makes no difference, nor did stopping and restarting Tomcat. Even worse: all of a sudden, even this failed: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd Processing file /amazone_src/deploy.wsdd Exception:: org.apache.axis.deployment.wsdd.WSDDException: javax.xml.rpc.JAXRPCException: Null serializer factory specified. javax.xml.rpc.JAXRPCException: Null serializer factory specified. at org.apache.axis.encoding.TypeMappingImpl.register(TypeMappingI mpl.java) at org.apache.axis.deployment.wsdd.WSDDService.deployTypeMapping( WSDDServic e.java) at org.apache.axis.deployment.wsdd.WSDDService.initTMR(WSDDService.java) at org.apache.axis.deployment.wsdd.WSDDService.init(WSDDService.java) at org.apache.axis.deployment.wsdd.WSDDDeployment.init(WSDDDepl oyment.java) at org.apache.axis.deployment.wsdd.WSDDDocument.init(WSDDDocument.java) at org.apache.axis.utils.Admin.processWSDD(Admin.java) at org.apache.axis.utils.Admin.process(Admin.java) at org.apache.axis.utils.Admin.AdminService(Admin.java) ... I'm not sure if
Re: Message Style Service
Client Code is: public byte[] request(byte[] request){ try{ Service service = new Service(); Call call= (Call) service.createCall(); call.setTargetEndpointAddress( new URL(http://localhost:8080/axis/services/MyService;) ); SOAPBodyElement[] input = new SOAPBodyElement[1]; input[0] = new org.apache.axis.message.SOAPBodyElement(new ByteArrayInputStream(request)); System.out.println(call.invoke(input)); }catch(Exception e){ e.printStackTrace(); } return null; } and Server Code is: public void service(javax.xml.soap.SOAPEnvelope req, javax.xml.soap.SOAPEnvelope resp) throws Exception { if(myService == null){ myService = new MyService(); } // Request to byte[] SOAPBody soapBody = req.getBody(); Node docBody = soapBody.getFirstChild(); ByteArrayOutputStream inBytes = new ByteArrayOutputStream(); TransformerFactory tf = TransformerFactory.newInstance(); Transformer trans = tf.newTransformer(); trans.transform(new DOMSource(docBody), new StreamResult(inBytes)); //Call the real underlyingService byte[] response = myService.service(inBytes.toByteArray()); ByteArrayInputStream outBytes = new ByteArrayInputStream(response); DocumentBuilderFactory docf = DocumentBuilderFactory.newInstance(); DocumentBuilder docb = docf.newDocumentBuilder(); Document doc = docb.parse(outBytes); ((org.apache.axis.message.SOAPEnvelope)resp).addBodyElement(new org.apache.axis.message.SOAPBodyElement(doc.getDocumentElement())); } The WSDD descriptor for the service is: deployment name=xkms xmlns=http://xml.apache.org/axis/wsdd/; xmlns:java=http://xml.apache.org/axis/wsdd/providers/java; xmlns:xsi=http://www.w3.org/2000/10/XMLSchema-instance; service name=MyService style=message parameter name=className value=org.um.xkms.ws.MyService / parameter name=allowedMethods value=service / /service /deployment I havn't WSDL (because I don't know how to write it for this kind of service) Thanks a lot! Vicente Guardiola Carmine Gargiulo wrote: show us all client/server code that you've wrote In data Tue, 18 Oct 2005 10:55:12 +0200, Vicente D. Guardiola Buitrago [EMAIL PROTECTED] ha scritto: Hello, I want to do a Message style service because I want to send a XML document already created to the service and it returns another XML to me. I've seen in the Axis User's Guide that this type of service is the perfect ne to do this, because using this service the XML keeps unmodified, but it isn't in that way, that is, my XML is modified, when I create a SOAPBodyElement with a byte[] (which contains the XML file created) the XML-Document is modified by adding sevreal namespaces to all the elements Code: byte[] request; //An XML FIle ... Service service = new Service(); Call call= (Call) service.createCall(); call.setTargetEndpointAddress( new URL(http://localhost:8080/axis/services/Service;) ); SOAPBodyElement[] input = new SOAPBodyElement[1]; input[0] = new org.apache.axis.message.SOAPBodyElement(new ByteArrayInputStream(request)); call.invoke(input); How can I keep my XML file unmodified??? Thanks Vicente Guardiola __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es
RE: Deployment issues on OpenVMS
server-config.wsdd should be in the WEB-INF directory of your web application... Also when you say non-existent, what exactly do you mean - does it show up in the list of services you get at /servlet/AxisServlet? Also do check the logs in debug mode. Regards, Sunil D'Monte Tavant Technologies http://www.tavant.com -Original Message- From: Willem Grooters [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 14:35 To: 'axis-user@ws.apache.org' Subject: RE: Deployment issues on OpenVMS It wasn't, so I did add it myself (assuming the right spot is in tomcat's [.webapps.axis] directory. I also added the jar files that contain the server's classes, but it seems non-existant still. Even after tomcat was restarted. in [.webapps.axis.classes] I found that the samples are not stored as .jar files but expanded. Would I need to expand the jar files, or specify them in stead of the full path: Currently, it is sepcified as: service name=OrganisatieWebServiceSoap provider=java:RPC style=wrapped use=literal parameter name=wsdlTargetNamespace value=http://politie.nl/webservices/xpol/organisatie/ parameter name=wsdlServiceElement value=OrganisatieWebService/ parameter name=wsdlServicePort value=OrganisatieWebServiceSoap/ parameter name=className value=nl.politie.webservices.xpol.organisatie.OrganisatieWebS erviceSoapSkel eton/ parameter name=wsdlPortType value=OrganisatieWebServiceSoap/ parameter name=allowedMethods value=*/ The .jar files is named: OrganisatieWebService.jar, containing the path nl/politie/webservices/xpol/organisatie. There are a number of jars that hold calsses used in the application. The current system does NOT carry the domain politie.nl - just the nodename. Does that matter? Willem -Oorspronkelijk bericht- Van: Sunil D'Monte [mailto:[EMAIL PROTECTED] Verzonden: dinsdag 18 oktober 2005 10:07 Aan: 'axis-user@ws.apache.org' Onderwerp: RE: Deployment issues on OpenVMS Did it create an entry in your server-config.wsdd file? I think that's all the admin client does; you could just as well copy and paste the XML into server-config.wsdd yourself. It's worth trying this at least to see if your service works. Regards, Sunil D'Monte Tavant Technologies http://www.tavant.com -Original Message- From: Willem Grooters [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 12:37 To: 'axis-user@ws.apache.org' Subject: Deployment issues on OpenVMS Hi, I'm running Apache 1.3-1, Tomcat 4.1.24 and Axis 1.1 under Java 1.4.2-P2 on OpenVMS 7.3-1. These all have been installed as dowloaded from the HP website, without extensive configuration, so rather out-of-the-box. All the examples can be run nicely. Collegues running in a .NET environment obtain the right answers when they access these services using the same URL's as I do from my browser. These collegues have an application that communicates with a TRU64 machine for getting data, and they want to use the same client application to retrieve similar data from the VMS box. However, I cannot use the TRU64 java code because the data is completely different (storage, lyaout, codes). They sent me the WSDL file from the Unix application, from which I could create the java sources that would form the webservices, using WSDL2Java. The generation process also creates a deploy.wsdd and undeploy.wsdd. I have added code where required and could compile all without errror. However, when using these the services do not show up at all: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd (the quotes are required since VMS is non case-senistive if non-quoted). It tells me it processes the file, no problems at all, but the service appears to be non-existing. I had problems on this before: $ set def amazone_ws:[00] ! which is the root where the code started (the web application path starts here) $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd says it cannot find the file to process, but $ set def [.amazone.ws] ! which is the same location amazone-ws:[00] refers to! $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd succeeded - but with an error as above. However, this is considered a minor issue. Above is the same on a 7.3-2 system, so the OS version is not the problem. Stopping and starting AXIS makes no difference, nor did stopping and restarting Tomcat. Even worse: all of a sudden, even this failed: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd Processing file /amazone_src/deploy.wsdd Exception:: org.apache.axis.deployment.wsdd.WSDDException: javax.xml.rpc.JAXRPCException: Null serializer factory specified. javax.xml.rpc.JAXRPCException: Null serializer factory specified. at
RE: Deployment issues on OpenVMS
So the location is correct (the services that show up at /servlet/AxisServlet are in there as well). Non-existent = it does NOT show up at at /servlet/AxisServlet, and /services/servicename?wsdl give me Page not found. check logs in debug mode - how do I do that? (Don't hqve to explain in detail, URL to deocs will do) Willem -Oorspronkelijk bericht- Van: Sunil D'Monte [mailto:[EMAIL PROTECTED] Verzonden: dinsdag 18 oktober 2005 11:14 Aan: 'axis-user@ws.apache.org' Onderwerp: RE: Deployment issues on OpenVMS server-config.wsdd should be in the WEB-INF directory of your web application... Also when you say non-existent, what exactly do you mean - does it show up in the list of services you get at /servlet/AxisServlet? Also do check the logs in debug mode. Regards, Sunil D'Monte Tavant Technologies http://www.tavant.com -Original Message- From: Willem Grooters [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 14:35 To: 'axis-user@ws.apache.org' Subject: RE: Deployment issues on OpenVMS It wasn't, so I did add it myself (assuming the right spot is in tomcat's [.webapps.axis] directory. I also added the jar files that contain the server's classes, but it seems non-existant still. Even after tomcat was restarted. in [.webapps.axis.classes] I found that the samples are not stored as .jar files but expanded. Would I need to expand the jar files, or specify them in stead of the full path: Currently, it is sepcified as: service name=OrganisatieWebServiceSoap provider=java:RPC style=wrapped use=literal parameter name=wsdlTargetNamespace value=http://politie.nl/webservices/xpol/organisatie/ parameter name=wsdlServiceElement value=OrganisatieWebService/ parameter name=wsdlServicePort value=OrganisatieWebServiceSoap/ parameter name=className value=nl.politie.webservices.xpol.organisatie.OrganisatieWebS erviceSoapSkel eton/ parameter name=wsdlPortType value=OrganisatieWebServiceSoap/ parameter name=allowedMethods value=*/ The .jar files is named: OrganisatieWebService.jar, containing the path nl/politie/webservices/xpol/organisatie. There are a number of jars that hold calsses used in the application. The current system does NOT carry the domain politie.nl - just the nodename. Does that matter? Willem -Oorspronkelijk bericht- Van: Sunil D'Monte [mailto:[EMAIL PROTECTED] Verzonden: dinsdag 18 oktober 2005 10:07 Aan: 'axis-user@ws.apache.org' Onderwerp: RE: Deployment issues on OpenVMS Did it create an entry in your server-config.wsdd file? I think that's all the admin client does; you could just as well copy and paste the XML into server-config.wsdd yourself. It's worth trying this at least to see if your service works. Regards, Sunil D'Monte Tavant Technologies http://www.tavant.com -Original Message- From: Willem Grooters [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 12:37 To: 'axis-user@ws.apache.org' Subject: Deployment issues on OpenVMS Hi, I'm running Apache 1.3-1, Tomcat 4.1.24 and Axis 1.1 under Java 1.4.2-P2 on OpenVMS 7.3-1. These all have been installed as dowloaded from the HP website, without extensive configuration, so rather out-of-the-box. All the examples can be run nicely. Collegues running in a .NET environment obtain the right answers when they access these services using the same URL's as I do from my browser. These collegues have an application that communicates with a TRU64 machine for getting data, and they want to use the same client application to retrieve similar data from the VMS box. However, I cannot use the TRU64 java code because the data is completely different (storage, lyaout, codes). They sent me the WSDL file from the Unix application, from which I could create the java sources that would form the webservices, using WSDL2Java. The generation process also creates a deploy.wsdd and undeploy.wsdd. I have added code where required and could compile all without errror. However, when using these the services do not show up at all: $ java org.apache.axis.client.AdminClient /amazone_src/deploy.wsdd (the quotes are required since VMS is non case-senistive if non-quoted). It tells me it processes the file, no problems at all, but the service appears to be non-existing. I had problems on this before: $ set def amazone_ws:[00] ! which is the root where the code started (the web application path starts here) $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd says it cannot find the file to process, but $ set def [.amazone.ws] ! which is the same location amazone-ws:[00] refers to! $ java org.apache.axis.client.AdminClient ./path/deploy.wsdd succeeded - but with an error as above. However, this is considered a minor issue. Above is the same
[Axis2] Asynchronous dual client
Title: Mensaje Hi, I am developinga WS clientwith Axis2 code generator. I want to use dual transport,I engage the Addressing module and I configure the transport as dual butI can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty("subscribe.action")); call.setSoapAction(myProp.getProperty("subscribe.action")); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.SubscribeOpDatabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty("subscribe.replayto")); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty("msg_id_template") + new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrónico y, en su caso, cualquier fichero anexo al mismo, contiene información de carácter confidencial exclusivamente dirigida a su destinatario o destinatarios y propiedad de Vodafone España. Queda prohibida su divulgación, copia o distribución a terceros sin la previa autorización escrita de Vodafone España, en virtud de la legislación vigente. En el caso de haber recibido este correo electrónico por error, se ruega notificar inmediatamente esta circunstancia mediante reenvío a la dirección electrónica del remitente y la destrucción del mismo.Confidentiality The information in this e-mail and in any attachments is classified as Vodafone España Confidential and Proprietary Information and solely for the attention and use of the named addressee(s). You are hereby notified that any dissemination, distribution or copy of this communication is prohibited without the prior written consent of Vodafone España and is s strictly prohibited by law. If you have received this communication in error, please, notify the sender by reply e-mail.
Re: [Axis2] Asynchronous dual client
Title: Mensaje Hi Villaba; That is a bug , I just realized that we will fix that soon, I will create a JIRA issue too , thanks for mail. Thanks,Deepal~Future is Open~ - Original Message - From: Villalba, Gregorio, VF-ES (gvillal2) EXT To: axis-user@ws.apache.org Sent: Tuesday, October 18, 2005 5:01 PM Subject: [Axis2] Asynchronous dual client Hi, I am developinga WS clientwith Axis2 code generator. I want to use dual transport,I engage the Addressing module and I configure the transport as dual butI can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty("subscribe.action")); call.setSoapAction(myProp.getProperty("subscribe.action")); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.SubscribeOpDatabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty("subscribe.replayto")); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty("msg_id_template") + new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrónico y, en su caso, cualquier fichero anexo al mismo, contiene información de carácter confidencial exclusivamente dirigida a su destinatario o destinatarios y propiedad de Vodafone España. Queda prohibida su divulgación, copia o distribución a terceros sin la previa autorización escrita de Vodafone España, en virtud de la legislación vigente. En el caso de haber recibido este correo electrónico por error, se ruega notificar inmediatamente esta circunstancia mediante reenvío a la dirección electrónica del remitente y la destrucción del mismo.Confidentiality The information in this e-mail and in any attachments is classified as Vodafone España Confidential and Proprietary Information and solely for the attention and use of the named addressee(s). You are hereby notified that any dissemination, distribution or copy of this communication is prohibited without the prior written consent of Vodafone España and is s strictly prohibited by law. If you have received this communication in error, please, notify the sender by reply e-mail.
Re: [Axis2] Asynchronous dual client
Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty(subscribe.action)); call.setSoapAction(myProp.getProperty(subscribe.action)); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.SubscribeOpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty(s ubscribe.replayto)); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty(msg_id_template) + new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrónico y, en su caso, cualquier fichero anexo al mismo, contiene información de carácter confidencial exclusivamente dirigida a su destinatario o destinatarios y propiedad de Vodafone España. Queda prohibida su divulgación, copia o distribución a terceros sin la previa autorización escrita de Vodafone España, en virtud de la legislación vigente. En el caso de haber recibido este correo electrónico por error, se ruega notificar inmediatamente esta circunstancia mediante reenvío a la dirección electrónica del remitente y la destrucción del mismo. Confidentiality The information in this e-mail and in any attachments is classified as Vodafone España Confidential and Proprietary Information and solely for the attention and use of the named addressee(s). You are hereby notified that any dissemination, distribution or copy of this communication is prohibited without the prior written consent of Vodafone España and is s strictly prohibited by law. If you have received this communication in error, please, notify the sender by reply e-mail.
Re: [Axis2] Asynchronous dual client
+1 Eran is 100% right. this is not a bug. If you choose the In-Out mep that means you hand over the control to Axis2. So you can not set the Adressing Headers. (Becouse Axis2 will set up a listener fo you and waiting for reply). If you need to contol addressing use In-Only MEP. Let us close the bug For more info read the In-Only MEP Support: InOnlyMEPClient part of article http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html Srinath On 10/18/05, Eran Chinthaka [EMAIL PROTECTED] wrote: Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty(subscribe.action)); call.setSoapAction(myProp.getProperty(subscribe.action)); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.SubscribeOpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty(s ubscribe.replayto)); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty(msg_id_template) + new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrónico y, en su caso, cualquier fichero anexo al mismo, contiene información de carácter confidencial exclusivamente dirigida a su destinatario o destinatarios y propiedad de Vodafone España. Queda prohibida su divulgación, copia o distribución a terceros sin la previa autorización escrita de Vodafone España, en virtud de la legislación vigente. En el caso de haber recibido este correo electrónico por error, se ruega notificar inmediatamente esta circunstancia mediante reenvío a la dirección electrónica del remitente y la destrucción del mismo. Confidentiality The information in this e-mail and in any attachments is classified as Vodafone España Confidential and Proprietary Information and solely for the attention and use of the named addressee(s). You are hereby notified that any dissemination, distribution or copy of this communication is prohibited without the prior written consent of Vodafone España and is s strictly prohibited by law. If you have received this communication in error, please, notify the sender by reply e-mail.
overloaded methods on startup
Hello fellow Axis users! I have got a problem with involuntary overloaded Axis methods. To be more concrete: Sometimes on startup the methods of a webservice show upt twice in the ervice' WSDL, but with identical paramtere types, and the client we use (Flash) cannot handle overloaded methods. System setup is quite standard, we use tomcat-5.5.9 and 1.2.1, server-config.wsdl is attached. Only part a little special is that we use a handler (derived from BasicHandler of Axis) to bring up some stuff before services are used. From the feel of the error - only comes up sporadically, only on startup (Tomcat Context and Tomcat complete too) - I would guess that there is some race condition in the initialization of the services. Anybody else saw this behaviour? Regards, -- Marc Föll Softwareentwicklung Tel.: +49 (0) 511 6068721 Fax.: +49 (0) 511 6068722 E-Mail: [EMAIL PROTECTED] TOMORROW FOCUS Technologies GmbH Gerberstr. 38 D-81435 Kempten http://www.tomorrow-focus-technologies.de ?xml version=1.0 encoding=UTF-8? deployment xmlns=http://xml.apache.org/axis/wsdd/; xmlns:java=http://xml.apache.org/axis/wsdd/providers/java; globalConfiguration parameter name=adminPassword value=admin/ parameter name=enableNamespacePrefixOptimization value=true/ parameter name=attachments.Directory value=/home/marc/eclipse-tomcat-5.5.9/webapps/axis/WEB-INF/attachments/ parameter name=disablePrettyXML value=true/ parameter name=attachments.implementation value=org.apache.axis.attachments.AttachmentsImpl/ parameter name=sendMultiRefs value=false/ parameter name=sendXsiTypes value=true/ parameter name=sendXMLDeclaration value=true/ requestFlow handler type=middletier/ /requestFlow /globalConfiguration handler name=LocalResponder type=java:org.apache.axis.transport.local.LocalResponder/ handler name=URLMapper type=java:org.apache.axis.handlers.http.URLMapper/ handler name=Authenticate type=java:org.apache.axis.handlers.SimpleAuthenticationHandler/ handler name=middletier type=java:de.tft.hlkf.mseuropa.utility.CommonHandler/ service name=STATISTICS provider=java:RPC parameter name=allowedMethods value=log rollFile/ parameter name=className value=de.tft.hlkf.mseuropa.statistics.Statistics/ /service service name=WAKEUPCALL provider=java:RPC parameter name=allowedMethods value=getWakeupCall setWakeupCall resetWakeupCall/ parameter name=className value=de.tft.hlkf.mseuropa.wakeupcall.Service/ /service service name=AUDIO provider=java:RPC parameter name=allowedMethods value=getGenres getAlbumsByGenre getAlbumTracks getRecommendedPlaylists getPlaylistTracks/ parameter name=className value=de.tft.hlkf.mseuropa.audio.Audio/ beanMapping languageSpecificType=java:de.tft.hlkf.mseuropa.audio.Genre qname=ns2:Genre xmlns:ns2=audio/ beanMapping languageSpecificType=java:de.tft.hlkf.mseuropa.audio.Album qname=ns3:Album xmlns:ns3=audio/ beanMapping languageSpecificType=java:de.tft.hlkf.mseuropa.audio.AlbumTrack qname=ns4:Track xmlns:ns4=audio/ beanMapping languageSpecificType=java:de.tft.hlkf.mseuropa.audio.Playlist qname=ns5:Track xmlns:ns5=audio/ beanMapping languageSpecificType=java:de.tft.hlkf.mseuropa.audio.PlaylistTrack qname=ns6:Track xmlns:ns6=audio/ /service service name=TIME provider=java:RPC parameter name=allowedMethods value=get setTimeZone getTimeZone/ parameter name=className value=de.tft.hlkf.mseuropa.time.Time/ beanMapping languageSpecificType=java:de.tft.hlkf.mseuropa.time.TimeInfo qname=ns7:TimeInfo xmlns:ns7=time/ /service service name=MAIL provider=java:RPC operation name=getMailList soapAction= parameter name=passengerId/ parameter name=indexFrom/ parameter name=max/ parameter name=shortInfo/ /operation operation name=getMail soapAction= parameter name=passengerId/ parameter name=id/ /operation operation name=deleteMail soapAction= parameter name=passengerId/ parameter name=id/ /operation operation name=sendMail soapAction= parameter name=passengerId/ parameter name=mail/ parameter name=replyMailId/ /operation operation name=getMailInfo soapAction=/ parameter name=allowedMethods value=*/ parameter name=className value=de.tft.hlkf.mseuropa.mail.MailService/ parameter name=wsdlTargetNamespace value=urn:ActionMailService/ typeMapping deserializer=org.apache.axis.encoding.ser.BeanDeserializerFactory encodingStyle=http://schemas.xmlsoap.org/soap/encoding/; qname=ns8:Part serializer=org.apache.axis.encoding.ser.BeanSerializerFactory type=java:de.tft.hlkf.mseuropa.mail.response.Part xmlns:ns8=urn:ActionMailService/ typeMapping deserializer=org.apache.axis.encoding.ser.BeanDeserializerFactory encodingStyle=http://schemas.xmlsoap.org/soap/encoding/; qname=ns9:MailList serializer=org.apache.axis.encoding.ser.BeanSerializerFactory type=java:de.tft.hlkf.mseuropa.mail.response.MailList xmlns:ns9=urn:ActionMailService/ typeMapping
question about service initialization
Hello Axis users, we're using axis-1.2.1 with Tomcat 5.5.9, and I have a question concerning the service deployment in Axis: I think, the services in one web application are deployed lazily, when the first request for a method or WSDL of one service comes, the deployment starts. Is it possible to force an early deployment, i.e. on Tomcat start or on reload of the web applications context? Regards, -- Marc Föll Softwareentwicklung Tel.: +49 (0) 511 6068721 Fax.: +49 (0) 511 6068722 E-Mail: [EMAIL PROTECTED] TOMORROW FOCUS Technologies GmbH Gerberstr. 38 D-81435 Kempten http://www.tomorrow-focus-technologies.de
cleanup() in BasicHandler derived class not called
Hello Axis users, I found an issue with the org.apache.axis.handlers.BasicHandler class: I derived my own handler from that class, and the init() and invoke() methods get called, however the cleanup() method is not called... Regards, -- Marc Föll Softwareentwicklung Tel.: +49 (0) 511 6068721 Fax.: +49 (0) 511 6068722 E-Mail: [EMAIL PROTECTED] TOMORROW FOCUS Technologies GmbH Gerberstr. 38 D-81435 Kempten http://www.tomorrow-focus-technologies.de
RE: question about service initialization
Have you tried setting the Axis servlet to load on startup in your web.xml? -Original Message- From: Marc Föll [mailto:[EMAIL PROTECTED] Sent: 18 October 2005 14:39 To: axis-user@ws.apache.org Subject: question about service initialization Hello Axis users, we're using axis-1.2.1 with Tomcat 5.5.9, and I have a question concerning the service deployment in Axis: I think, the services in one web application are deployed lazily, when the first request for a method or WSDL of one service comes, the deployment starts. Is it possible to force an early deployment, i.e. on Tomcat start or on reload of the web applications context? Regards, -- Marc Föll Softwareentwicklung Tel.: +49 (0) 511 6068721 Fax.: +49 (0) 511 6068722 E-Mail: [EMAIL PROTECTED] TOMORROW FOCUS Technologies GmbH Gerberstr. 38 D-81435 Kempten http://www.tomorrow-focus-technologies.de CONFIDENTIALITY PRIVILEGE NOTICE This e-mail is confidential to its intended recipient. It may also be privileged. Neither the confidentiality nor any privilege attaching to this e-mail is waived lost or destroyed by reason that it has been mistakenly transmitted to a person or entity other than its intended recipient. If you are not the intended recipient please notify us immediately by telephone or fax at the numbers provided above or e-mail by Reply To Author and return the printed e-mail to us by post at our expense. We believe, but do not warrant, that this e-mail and any attachments are virus-free, but you should check. We may monitor traffic data of both business and personal e-mails. We are not liable for any opinions expressed by the sender where this is a non-business e-mail. If you do not receive all the message, or if you have difficulty with the transmission, please telephone us immediately.
Re: how to get real paramerter name instead of in0, in1 in wsdl file.
thanks, you are right, we should start with wsdl file. However,sometimes, just be lazy of doing so. -JPKetan Deshpande [EMAIL PROTECTED] wrote: Hi!You can generate WSDL from an interface and at the same time use animplementing class to generate proper param names. java org.apache.axis.wsdl.Java2WSDL -i MyFooClass -l"http://localhost:8080/axis/services/MyFooService" MyFoowhere MyFoo is the interface and MyFooClass implements MyFooTechnically, you should start with WSDL! :-) See other discussion threads formore...-K--- jim wang <[EMAIL PROTECTED]>wrote: Hi, Katan: Thanks for the quick response. You are right on using class instead of interface, however, theoratically, we should use Java2WSDL to against interface not class to generate WSDL file, right? Correct me if i am wrong. -JP Ketan Deshpande <[EMAIL PROTECTED]>wrote: Hi Jim, This works fine for me if I use a class, not an interface. e.g. if I use an interface Foo, java2wsdl picks up in0 / in1. If I use a class Foo, then the param names are picked up fine. You still need to compile with -g. -K --- jim wang wrote: Folks:I am using Java2WSDL to generate wsdl file, and try to get real parameter name from interface instead of in0, in1.Someone suggested to me using the following technique:When you compile your source code, turn debugging on. Apache will use your parameter names in the WSDL file. for example:javac -g Calculator.javajava org.apache.axis.wsdl.Java2WSDL -o calculator.wsdl -l "http://localhost:8080/axis/Calculator.jws" Calculator Some how, it did not work for me, does this sound familiar to you, please help.Regards, -JP - Yahoo! Music Unlimited - Access over 1 million songs. Try it free. Ketan Deshpande [EMAIL PROTECTED]__ Yahoo! Music Unlimited Access over 1 million songs. Try it free. http://music.yahoo.com/unlimited/ - Yahoo! Music Unlimited - Access over 1 million songs. Try it free.Ketan Deshpande[EMAIL PROTECTED]__ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com Yahoo! Music Unlimited - Access over 1 million songs. Try it free.
axis changes wsdl soap:address
Hi, Apologies if this has already been asked on the list, but I did a search and couldn't find anything. I'm developing some axis 1.2.1 web services running in a tomcat 5.5.9 server. I've written the wsdl files, and have these specified in the wsdd files for the services. At the moment the soap:address location for the service is specified with the IP address of my machine for testing, as follows: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://IP address:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service I've noticed that axis changes the soap:address to reflect the URL used to request the wsdl. For example, if I call the wsdl files using, for example, http://IP address:8080/biorsws/services/BiorsAdvancedQueryDocStyle?wsdl , it is returned as I defined it in the wsdl: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://IP address:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service However, if I call the wsdl with http://localhost:8080/biorsws/services/BiorsAdvancedQueryDocStyle?wsdl , the wsdl is changed to: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://localhost:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service and if I use the name of the machine on our local network (http://machine name:8080/biorsws/services/BiorsAdvancedQueryDocStyle?wsdl) the returned wsdl contains: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://machine name:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service This happend whether I request the wsdl in a browser, using WSDL2Java, when or using MS Visual Studio to generate a .Net client. All other elements of the wsdl are unchanged, as far as I can see. I'm now at the stage where I want to deploy these services on our production server with a regular web address (http://www.gsf.de/.) defined for the service within the wsdl, such as service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://www.gsf.de/ws/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service with this address mapped to the actual location of the service. However, I'm now finding that if I request the wsdl for this service, as is changing the address in the returned wsdl to include the machine name and port on which the service is deployed. service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://machine name:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service Can anyone tell me why this is happening, and more importantly, is there a way to ensure that the wsdl returned by axis is exactly as I have defined it. Thanks in advance for your help. Richard.
WSDL2Java: SymbolTable binding references question
All As a relative newcomer to web services, I have been using the Axis API successfully for a couple of months and find it invaluable for my purposes. However I recently ran into something which has left me confused, where documentation and implementation do not appear to mirror one another. The following documentation for Axis states http://ws.apache.org/axis/java/user-guide.html#WSDL2JavaBuildingStubsSkeletonsAndDataTypesFromWSDL that for: - Each PortType, will gen a Port Type Imterface - Each Binding, will gen a Binding Stub class - Each Service, will gen a Service Interface and Impl (as well as other classes not in the scope of this query) Using the following WSDL http://www.holidaywebservice.com/Holidays/GBSCT/GBSCTHolidayService.asmx?WSDL I had expected 12 generated classfiles compised of - 3x PortType Interfaces - 3x Binding Stubs - 3x Service Interfaces - 3x Service Impls Instead there was only one of each type of file generated, all against the SOAP PortType Having looked around a bit deeper, it turns out that this is apparently intentional. (1.3 Final) SymbolTable.setBindingReferences javadoc stipulates: Set the isReferenced flag to true on the given BindingEntry and all SymTabEntries that it refers to ONLY if this binding is a SOAP binding. Subsequently the Parser.generate() only generates for Bindings where BindingEntry.isReferenced == true. Would it be possible for someone to explain this rationale and why it is not deemed neccessary to generate for the other (HTTP) PortTypes in the WSDL above. I accept this may be down to a misunderstanding of how WSDLs operate but would like to understand better if that turns out to be the case. Thanks in advance. J
Re: axis changes wsdl soap:address
This is a feature, I think. In fact, it's a feature that my project likes. :) The assumption is that you might have a dynamic SOAP client that can discover a service as run-time and call it working only from the WSDL. In that case, it's important that the WSDL contain the true endpoint. True means what the client would call, so the WSDL varies according to the client's position on your net. If you want to publish WSDL with a textually-fixed endpoint, put the file on a web server. External clients will all see the same WSDL, I think, so the variations may not be a real problem. On Tue, 18 Oct 2005, Richard Gregory wrote: Hi, Apologies if this has already been asked on the list, but I did a search and couldn't find anything. I'm developing some axis 1.2.1 web services running in a tomcat 5.5.9 server. I've written the wsdl files, and have these specified in the wsdd files for the services. At the moment the soap:address location for the service is specified with the IP address of my machine for testing, as follows: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://IP address:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service I've noticed that axis changes the soap:address to reflect the URL used to request the wsdl. For example, if I call the wsdl files using, for example, http://IP address:8080/biorsws/services/BiorsAdvancedQueryDocStyle?wsdl , it is returned as I defined it in the wsdl: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://IP address:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service However, if I call the wsdl with http://localhost:8080/biorsws/services/BiorsAdvancedQueryDocStyle?wsdl , the wsdl is changed to: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://localhost:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service and if I use the name of the machine on our local network (http://machine name:8080/biorsws/services/BiorsAdvancedQueryDocStyle?wsdl) the returned wsdl contains: service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://machine name:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service This happend whether I request the wsdl in a browser, using WSDL2Java, when or using MS Visual Studio to generate a .Net client. All other elements of the wsdl are unchanged, as far as I can see. I'm now at the stage where I want to deploy these services on our production server with a regular web address (http://www.gsf.de/.) defined for the service within the wsdl, such as service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://www.gsf.de/ws/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service with this address mapped to the actual location of the service. However, I'm now finding that if I request the wsdl for this service, as is changing the address in the returned wsdl to include the machine name and port on which the service is deployed. service name=BiorsAdvancedQueryDocStyleService port binding=tns:BiorsAdvancedQuerySOAPBinding name=BiorsAdvancedQueryDocStyle soap:address location=http://machine name:8080/biorsws/services/BiorsAdvancedQueryDocStyle/ /port /service Can anyone tell me why this is happening, and more importantly, is there a way to ensure that the wsdl returned by axis is exactly as I have defined it. Thanks in advance for your help. Richard. Guy Rixon [EMAIL PROTECTED] Institute of Astronomy Tel: +44-1223-337542 Madingley Road, Cambridge, UK, CB3 0HA Fax: +44-1223-337523
RE: Eclipse build path problem (conflict between client stubs and server code)
Hi! You may do the following (although I didn't try it out): Open Project/Properties/Java BuildPath, select Allow output folders for source folders and specify different folders for your source folders. Best regards, -- DI Günter Grossberger Consultant Tel: +43 1 329 50 161 Software AG Österreich Fax: +43 1 329 50 171 Guglgasse 7-9 GSM: +43 676 833 29 261 1030 Wien http://www.softwareag.com/austria -Original Message- From: Johan Walters [mailto:[EMAIL PROTECTED] Sent: Monday, October 17, 2005 11:55 AM To: axis-user@ws.apache.org Subject: Eclipse build path problem (conflict between client stubs and server code) Hi all, I'm using Eclipse to edit and build my project. In this project I have both client and server code. I've integrated axis to my servlet project. The idea is that the whole lot is deployed to tomcat, where users will be able to download the client program. Using java2wsdl and wsdl2java to generate client code, goes fine. The output java files are placed in a separate source tree in my project. The stub-classes there have the same packagename as the service code has. In ant, I simply compile both source trees seperately. All works fine, building and running both the server and client works. The problem is, Eclipse's build path (to compile ahead and provide in-line assistance) sees only one project, and also sees that stub classnames already have been declared in the other source tree and references in the client code are interpreted to the wrong package. I suppose I'm not the only one facing this probem. The solutions I can think of is either removing the client source tree from the build path, or changing the namespace in wsdl2java so that the stub classes will be in a package with a different name. I'm not sure whether the latter solution has any disadvantages, but it's ugly at least. Can't Eclipse just treat two source folders seperately? I do not want two make two separate projects out of it; the client code has to be deployed to the server as well (for distribution), and I certainly do not want to use two CVS repositories. Any Ideas? Johan Walters
Re: WSDL2Java: SymbolTable binding references question
Jerome, Axis runtime does not support HTTP binding properly, we don't do any codegen for them. thanks, dims On 10/18/05, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: All As a relative newcomer to web services, I have been using the Axis API successfully for a couple of months and find it invaluable for my purposes. However I recently ran into something which has left me confused, where documentation and implementation do not appear to mirror one another. The following documentation for Axis states http://ws.apache.org/axis/java/user-guide.html#WSDL2JavaBuildingStubsSkeletonsAndDataTypesFromWSDL that for: - Each PortType, will gen a Port Type Imterface - Each Binding, will gen a Binding Stub class - Each Service, will gen a Service Interface and Impl (as well as other classes not in the scope of this query) Using the following WSDL http://www.holidaywebservice.com/Holidays/GBSCT/GBSCTHolidayService.asmx?WSDL I had expected 12 generated classfiles compised of - 3x PortType Interfaces - 3x Binding Stubs - 3x Service Interfaces - 3x Service Impls Instead there was only one of each type of file generated, all against the SOAP PortType Having looked around a bit deeper, it turns out that this is apparently intentional. (1.3 Final) SymbolTable.setBindingReferences javadoc stipulates: Set the isReferenced flag to true on the given BindingEntry and all SymTabEntries that it refers to ONLY if this binding is a SOAP binding. Subsequently the Parser.generate() only generates for Bindings where BindingEntry.isReferenced == true. Would it be possible for someone to explain this rationale and why it is not deemed neccessary to generate for the other (HTTP) PortTypes in the WSDL above. I accept this may be down to a misunderstanding of how WSDLs operate but would like to understand better if that turns out to be the case. Thanks in advance. J -- Davanum Srinivas : http://wso2.com/blogs/
developing web services for complex types
i am trying to developing web services for complex types string[] ,service simply accepts string[] as parameter and return string[] to client ... can any one plz help me thk Yahoo! Music Unlimited - Access over 1 million songs. Try it free.
Posible bug in WSDL2Java
Hello! I think there is a bug in the wsdl2java tool (versions 1.2.x 1.3). I'm using the wsdl that I'm attaching to this e-mail. The problem is that the generated code for each type is similar to the following: (This is from the class timestampumurequesttype)... static { typeDesc.setXmlType(new javax.xml.namespace.QName(urn:schema, timeStampUMURequestType)); org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName(serialNumber); elemField.setXmlName(new javax.xml.namespace.QName(, serialNumber)); elemField.setXmlType(new javax.xml.namespace.QName(http://www.w3.org/2001/XMLSchema;, string)); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName(hashAlgorithm); elemField.setXmlName(new javax.xml.namespace.QName(, hashAlgorithm)); elemField.setXmlType(new javax.xml.namespace.QName(http://www.w3.org/2001/XMLSchema;, anyURI)); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName(hashValue); elemField.setXmlName(new javax.xml.namespace.QName(, hashValue)); elemField.setXmlType(new javax.xml.namespace.QName(http://www.w3.org/2001/XMLSchema;, base64Binary)); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); } This code I think that should be the following: static { typeDesc.setXmlType(new javax.xml.namespace.QName(urn:umu:diic:ants:pki:timeStampService:schema, timeStampUMURequestType)); org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName(serialNumber); elemField.setXmlName(new javax.xml.namespace.QName(urn:umu:diic:ants:pki:timeStampService:schema, serialNumber)); elemField.setXmlType(new javax.xml.namespace.QName(http://www.w3.org/2001/XMLSchema;, string)); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName(hashAlgorithm); elemField.setXmlName(new javax.xml.namespace.QName(urn:umu:diic:ants:pki:timeStampService:schema, hashAlgorithm)); elemField.setXmlType(new javax.xml.namespace.QName(http://www.w3.org/2001/XMLSchema;, anyURI)); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName(hashValue); elemField.setXmlName(new javax.xml.namespace.QName(urn:umu:diic:ants:pki:timeStampService:schema, hashValue)); elemField.setXmlType(new javax.xml.namespace.QName(http://www.w3.org/2001/XMLSchema;, base64Binary)); elemField.setNillable(false); typeDesc.addFieldDesc(elemField); } The problem is that, with the generated code the result of a request is similar to: ?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:BodytimeSta mpUMURequest xmlns=urn:schemaserialNumber xmlns=serialNumber/serialNumberhashAlgorithm xmlns=http://hashAlgorithm/hashAlgorithmhashValue xmlns=aGFzaFZhbHVl/hashValue/timeStampUMURequest/soapenv:Body/soap env:Envelope The problem is that the elements contained in timestampUmuRequest have as xmlns, xmlns=, and it should be xmlns=urn:schema. Is it a bug, or is there any problem with my wsdl? Could you guide me, please? Regards, Antonio. definitions xmlns=http://schemas.xmlsoap.org/wsdl/; xmlns:y=urn:umu:diic:ants:pki:timeStampService xmlns:ys=urn:umu:diic:ants:pki:timeStampService:schema xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/; xmlns:http=http://schemas.xmlsoap.org/wsdl/http/; xmlns:xs=http://www.w3.org/2001/XMLSchema; xmlns:soapenc=http://schemas.xmlsoap.org/soap/encoding/; targetNamespace=urn:umu:diic:ants:pki:timeStampService name=urn:umu:diic:ants:pki:timeStampService types xs:schema targetNamespace=urn:umu:diic:ants:pki:timeStampService:schema xmlns:tn=urn:umu:diic:ants:pki:timeStampService:schema xmlns:xs=http://www.w3.org/2001/XMLSchema; xs:complexType name=timeStampUMURequestType xs:sequence xs:element name=serialNumber type=xs:string/ xs:element name=hashAlgorithm type=xs:anyURI/ xs:element name=hashValue type=xs:base64Binary/ /xs:sequence /xs:complexType xs:complexType name=timeStampUMUResponseType xs:sequence xs:element name=timeStampToken type=xs:base64Binary/ /xs:sequence /xs:complexType xs:complexType name=validateTimeStampUMURequestType xs:sequence xs:element name=timeStampToken type=xs:base64Binary/ xs:element name=hashValue
RE: [Axis2] Asynchronous dual client
Hi guys, Ok, Axis sets the headers, but the problem is that Axis sets the ReplyTo to 127.0.0.1 (no the real machine IP) so the response never will reach the machine that made the request. That is why I wanted to change the header. -Mensaje original- De: Srinath Perera [mailto:[EMAIL PROTECTED] Enviado el: martes, 18 de octubre de 2005 14:49 Para: axis-user@ws.apache.org Asunto: Re: [Axis2] Asynchronous dual client +1 Eran is 100% right. this is not a bug. If you choose the In-Out mep that means you hand over the control to Axis2. So you can not set the Adressing Headers. (Becouse Axis2 will set up a listener fo you and waiting for reply). If you need to contol addressing use In-Only MEP. Let us close the bug For more info read the In-Only MEP Support: InOnlyMEPClient part of article http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html Srinath On 10/18/05, Eran Chinthaka [EMAIL PROTECTED] wrote: Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty(subscribe.action)); call.setSoapAction(myProp.getProperty(subscribe.action)); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.Subscribe OpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty (s ubscribe.replayto)); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty(msg_id_template) + new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrónico y, en su caso, cualquier fichero anexo al mismo, contiene información de carácter confidencial exclusivamente dirigida a su destinatario o destinatarios y propiedad de Vodafone España. Queda prohibida su divulgación, copia o distribución a terceros sin la previa autorización escrita de Vodafone España, en virtud de la legislación vigente. En el caso de haber recibido este correo electrónico por error, se ruega notificar inmediatamente esta circunstancia mediante reenvío a la dirección electrónica del remitente y la destrucción del mismo. Confidentiality The information in this e-mail and in any attachments is classified as Vodafone España Confidential and Proprietary Information and solely for the attention and use of the named addressee(s). You are hereby notified that any dissemination, distribution or copy of this communication is prohibited without the prior written consent of Vodafone España and is s strictly prohibited by law. If you have received this communication in error, please, notify the sender by reply e-mail.
[AXIS2] WSDL2Java ant task?
Hi all, I'm migrating to Axis 2 and when trying to execute my ant wsdl2java task, I get: taskdef A class needed by class org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask cannot be found: org/apache/axis/utils/DefaultAuthenticator Googling didn't turn up anything for an ant task for WSDL2Java and AXIS2. Seemingly the axis2 does not come with a new jar for Wsdl2javaAntTask. Any ideas? iksrazal None are more hopelessly enslaved than those who falsely believe they are free. -- Goethe __ Yahoo! Music Unlimited Access over 1 million songs. Try it free. http://music.yahoo.com/unlimited/
RE: [Axis2] Asynchronous dual client
Title: RE: [Axis2] Asynchronous dual client Hi again, I think I have found other problem, in the same scenario. When using Call with two connections, (Axis generates the header and does not allow changes), the element MessageId that is inserted is a number, and it should be an URI. I am using Axis2-0.9, maybe it works in other version. Anyone knows? Is it a bug? Thanks. --- soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ soapenv:Header wsa:To xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressinghttp://localhost:8060/wsa:To wsa:Action xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressinghttp://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe/wsa:Action wsa:ReplyTo xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing wsa:Addresshttp://127.0.0.1:6060/axis/services/EventSource/SubscribeOp/wsa:Address /wsa:ReplyTo wsa:MessageID xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing1129648347852/wsa:MessageID /soapenv:Header --- -Mensaje original- De: Srinath Perera [mailto:[EMAIL PROTECTED]] Enviado el: martes, 18 de octubre de 2005 14:49 Para: axis-user@ws.apache.org Asunto: Re: [Axis2] Asynchronous dual client Eran is 100% right. this is not a bug. If you choose the In-Out mep that means you hand over the control to Axis2. So you can not set the Adressing Headers. (Becouse Axis2 will set up a listener fo you and waiting for reply). If you need to contol addressing use In-Only MEP. Let us close the bug For more info read the In-Only MEP Support: InOnlyMEPClient part of article http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html Srinath On 10/18/05, Eran Chinthaka [EMAIL PROTECTED] wrote: Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty(subscribe.action)); call.setSoapAction(myProp.getProperty(subscribe.action)); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.Subscribe OpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty (s ubscribe.replayto)); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty(msg_id_template) new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrónico y, en su caso, cualquier fichero anexo al mismo, contiene información de carácter confidencial exclusivamente dirigida a su destinatario o destinatarios y propiedad de Vodafone
can any one tell me .jar file required org.apache.axis.constans.style
hello freinds, i ahave posted mail before this .. i am trying to develop a web service using deploy.wsdd for client send array of string to service ... service simply returns array of string i am getting client also complied ,but at run time i am getting error: java.lang.NoClassDefFoundError: Array/ws/ArraySoapBindingStubat Array.ws.ArrayServiceLocator.getArray(ArrayServiceLocator.java:55)at Array.ws.ArrayServiceLocator.getArray(ArrayServiceLocator.java:50)at Array.ws.ArrayTester.main(ArrayTester.java:9)Exception in thread "main" case is that the ArraySoapBindingStub class is not getting compled ... i m also attaching .wsdl and .wsdd genrated..can any one tell me modifcations needed eigther to .wsdd/.wsdl or to ArraySoapBindingStub ArraySoapBindingStub.java:33: package org.apache.axis.constants does not exist oper.setStyle(org.apache.axis.constants.Style.RPC); ^ArraySoapBindingStub.java:34: package org.apache.axis.constants does not exist oper.setUse(org.apache.axis.constants.Use.ENCODED); ^ArraySoapBindingStub.java:54: cannot resolve symbolsymbol : met hod setTypeMappingVersion (java.lang.String)location: class org.apache.axis.client.Service ((org.apache.axis.client.Service)super.service).setTypeMappingVersion("1.2"); ^ArraySoapBindingStub.java:66: cannot resolve symbolsymbol : class SimpleListSerializerFactory location: package ser java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; ^ArraySoapBindingStub.java:67: cannot resolve symbolsymbol : class SimpleListDeserializerFactory location: package ser java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; ^ArraySoapBindingStub.java:74: cannot resolve symbolsymbol : constructor ArraySerializerFactory (javax.xml.namespace.QName,javax.xml.namespace.QName)location: class org.apache.axis.encoding.ser.ArraySerializerFactory cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2)); ^ArraySoapBindingStub.java:81: cannot resolve symbolsymbol : method _createCall ()location: class org.apache.axis.client.Stub org.apache.axis.client.Call _call = super._createCall(); ^7 errors Yahoo! Music Unlimited - Access over 1 million songs. Try it free. deploy.wsdd Description: 2246918802-deploy.wsdd Arr.wsdl Description: 3135457509-Arr.wsdl
Re: can any one tell me .jar file required org.apache.axis.constans.style
Here's a site for you: http://www.jarhoo.com/ org.apache.axis.constans.style is in the main axis.jar . ArraySoapBindingStub probably is your own. Suggest verifying you have followed the user guide and have the required jars installed. HTH, iksrazal --- aditya mandlekar [EMAIL PROTECTED] wrote: hello freinds, i ahave posted mail before this .. i am trying to develop a web service using deploy.wsdd for client send array of string to service ... service simply returns array of string i am getting client also complied ,but at run time i am getting error: java.lang.NoClassDefFoundError: Array/ws/ArraySoapBindingStub at Array.ws.ArrayServiceLocator.getArray(ArrayServiceLocator.java:55) at Array.ws.ArrayServiceLocator.getArray(ArrayServiceLocator.java:50) at Array.ws.ArrayTester.main(ArrayTester.java:9) Exception in thread main case is that the ArraySoapBindingStub class is not getting compled ... i m also attaching .wsdl and .wsdd genrated..can any one tell me modifcations needed eigther to .wsdd/.wsdl or to ArraySoapBindingStub ArraySoapBindingStub.java:33: package org.apache.axis.constants does not exist oper.setStyle(org.apache.axis.constants.Style.RPC); ^ ArraySoapBindingStub.java:34: package org.apache.axis.constants does not exist oper.setUse(org.apache.axis.constants.Use.ENCODED); ^ ArraySoapBindingStub.java:54: cannot resolve symbol symbol : method setTypeMappingVersion (java.lang.String) location: class org.apache.axis.client.Service ((org.apache.axis.client.Service)super.service).setTypeMappingVersion(1.2); ^ ArraySoapBindingStub.java:66: cannot resolve symbol symbol : class SimpleListSerializerFactory location: package ser java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; ^ ArraySoapBindingStub.java:67: cannot resolve symbol symbol : class SimpleListDeserializerFactory location: package ser java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; ^ ArraySoapBindingStub.java:74: cannot resolve symbol symbol : constructor ArraySerializerFactory (javax.xml.namespace.QName,javax.xml.namespace.QName) location: class org.apache.axis.encoding.ser.ArraySerializerFactory cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2)); ^ ArraySoapBindingStub.java:81: cannot resolve symbol symbol : method _createCall () location: class org.apache.axis.client.Stub org.apache.axis.client.Call _call = super._createCall(); ^ 7 errors - Yahoo! Music Unlimited - Access over 1 million songs. Try it free. None are more hopelessly enslaved than those who falsely believe they are free. -- Goethe __ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com
Re: [Axis2] Asynchronous dual client
I belive both of them are bugs .. Srinath On 10/18/05, Villalba, Gregorio, VF-ES (gvillal2) EXT [EMAIL PROTECTED] wrote: Hi again, I think I have found other problem, in the same scenario. When using Call with two connections, (Axis generates the header and does not allow changes), the element MessageId that is inserted is a number, and it should be an URI. I am using Axis2-0.9, maybe it works in other version. Anyone knows? Is it a bug? Thanks. --- soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/; soapenv:Header wsa:To xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing;http://localhost:8060/wsa:To wsa:Action xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing;http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe/wsa:Action wsa:ReplyTo xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing; wsa:Addresshttp://127.0.0.1:6060/axis/services/EventSource/SubscribeOp/wsa:Address /wsa:ReplyTo wsa:MessageID xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing;1129648347852/wsa:MessageID /soapenv:Header --- -Mensaje original- De: Srinath Perera [mailto:[EMAIL PROTECTED] Enviado el: martes, 18 de octubre de 2005 14:49 Para: axis-user@ws.apache.org Asunto: Re: [Axis2] Asynchronous dual client #431 Eran is 100% right. this is not a bug. If you choose the In-Out mep that means you hand over the control to Axis2. So you can not set the Adressing Headers. (Becouse Axis2 will set up a listener fo you and waiting for reply). If you need to contol addressing use In-Only MEP. Let us close the bug For more info read the In-Only MEP Support: InOnlyMEPClient part of article http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html Srinath On 10/18/05, Eran Chinthaka [EMAIL PROTECTED] wrote: Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty(subscribe.action)); call.setSoapAction(myProp.getProperty(subscribe.action)); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.Subscribe OpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty (s ubscribe.replayto)); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty(msg_id_template) #43 new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback);
Re: [Axis2] Asynchronous dual client
Hi, The MessageId issue was fixed earlier today Please see: http://marc.theaimsgroup.com/?l=axis-devm=112961888525282w=2 Please try the code from the latest SVN Thanks, Ruchith On 10/18/05, Villalba, Gregorio, VF-ES (gvillal2) EXT [EMAIL PROTECTED] wrote: Hi again, I think I have found other problem, in the same scenario. When using Call with two connections, (Axis generates the header and does not allow changes), the element MessageId that is inserted is a number, and it should be an URI. I am using Axis2-0.9, maybe it works in other version. Anyone knows? Is it a bug? Thanks. --- soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/; soapenv:Header wsa:To xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing;http://localhost:8060/wsa:To wsa:Action xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing;http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe/wsa:Action wsa:ReplyTo xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing; wsa:Addresshttp://127.0.0.1:6060/axis/services/EventSource/SubscribeOp/wsa:Address /wsa:ReplyTo wsa:MessageID xmlns:wsa=http://schemas.xmlsoap.org/ws/2004/08/addressing;1129648347852/wsa:MessageID /soapenv:Header --- -Mensaje original- De: Srinath Perera [mailto:[EMAIL PROTECTED] Enviado el: martes, 18 de octubre de 2005 14:49 Para: axis-user@ws.apache.org Asunto: Re: [Axis2] Asynchronous dual client #431 Eran is 100% right. this is not a bug. If you choose the In-Out mep that means you hand over the control to Axis2. So you can not set the Adressing Headers. (Becouse Axis2 will set up a listener fo you and waiting for reply). If you need to contol addressing use In-Only MEP. Let us close the bug For more info read the In-Only MEP Support: InOnlyMEPClient part of article http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html Srinath On 10/18/05, Eran Chinthaka [EMAIL PROTECTED] wrote: Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty(subscribe.action)); call.setSoapAction(myProp.getProperty(subscribe.action)); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.Subscribe OpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty (s ubscribe.replayto)); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty(msg_id_template) #43 new
Re: can any one tell me .jar file required org.apache.axis.constans.style
kewl site! or if you want to just search a directory of jars for a class i wrote a basic little util class to do this for me (source attached). here's the output when i use it in my /dev/lib directory: C:\dev\libjava -jar c:/bin/classfinder/findclass.jar org.apache.axis.constants.Style jar:file:/C:/dev/lib/./axis-1.2.1.jar!/org/apache/axis/constants/Style.class Check out jarhoo.com. You can do a search for org.whatever.someclass and it will tell you which jar files those classes are in. --Brice aditya mandlekar wrote: hello freinds, i ahave posted mail before this .. i am trying to develop a web service using deploy.wsdd for client send array of string to service ... service simply returns array of string i am getting client also complied ,but at run time i am getting error: java.lang.NoClassDefFoundError: Array/ws/ArraySoapBindingStub at Array.ws.ArrayServiceLocator.getArray(ArrayServiceLocator.java:55) at Array.ws.ArrayServiceLocator.getArray(ArrayServiceLocator.java:50) at Array.ws.ArrayTester.main(ArrayTester.java:9) Exception in thread main case is that the ArraySoapBindingStub class is not getting compled ... i m also attaching .wsdl and .wsdd genrated..can any one tell me modifcations needed eigther to .wsdd/.wsdl or to ArraySoapBindingStub ArraySoapBindingStub.java:33: package org.apache.axis.constants does not exist oper.setStyle(org.apache.axis.constants.Style.RPC); ^ ArraySoapBindingStub.java:34: package org.apache.axis.constants does not exist oper.setUse(org.apache.axis.constants.Use.ENCODED); ^ ArraySoapBindingStub.java:54: cannot resolve symbol symbol : met hod setTypeMappingVersion (java.lang.String) location: class org.apache.axis.client.Service ((org.apache.axis.client.Service)super.service).setTypeMappingVersion(1.2); ^ ArraySoapBindingStub.java:66: cannot resolve symbol symbol : class SimpleListSerializerFactory location: package ser java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class; ^ ArraySoapBindingStub.java:67: cannot resolve symbol symbol : class SimpleListDeserializerFactory location: package ser java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class; ^ ArraySoapBindingStub.java:74: cannot resolve symbol symbol : constructor ArraySerializerFactory (javax.xml.namespace.QName,javax.xml.namespace.QName) location: class org.apache.axis.encoding.ser.ArraySerializerFactory cachedSerFactories.add(new org.apache.axis.encoding.ser.ArraySerializerFactory(qName, qName2)); ^ ArraySoapBindingStub.java:81: cannot resolve symbol symbol : method _createCall () location: class org.apache.axis.client.Stub org.apache.axis.client.Call _call = super._createCall(); ^ 7 errors Yahoo! Music Unlimited - Access over 1 million songs. Try it free. http://pa.yahoo.com/*http://us.rd.yahoo.com/evt=36035/*http://music.yahoo.com/unlimited/ import java.io.File; import java.io.FilenameFilter; import java.net.URL; import java.net.URLClassLoader; public class ClassFinder { static void usage() { System.err.println(java ClassFinder fully-qualified classname); System.err.println(java ClassFinder dir-with-jars fully-qualified classname); } /** * usages: * java ClassFinder fully-qualified classname * @param args */ public static void main(String[] args) { try { String className = null; String dirName = .; switch (args.length) { case (1): className = args[0]; break; case (2): dirName = args[0]; className = args[1]; break; default: usage(); return; } String classFilePath = className; // if the class name has no '/'s in it then replace all '.'s with '/'s // (basically it's expected to be either com.foo.Bar or com/foo/Bar if (classFilePath.indexOf('/') == -1) { classFilePath = classFilePath.replace('.', '/'); } if (!classFilePath.endsWith(.class)) { classFilePath = classFilePath.concat(.class); } File dir = new File(dirName); File[] jars = dir.listFiles(new FilenameFilter() { public boolean accept(File dir, String name) { return
Re: developing web services for complex types
Aditya, Why don't you use xsd for this, you can declare in the wsdl types asxsd:element name=myStringArrayInputxsd:complexType xsd:sequence xsd:element name=StringName type=xsd:string minOccurs=0 maxOccurs=unbounded/ /xsd:sequence/xsd:complexType/xsd:elementI think, the above schema will help you.thanksvishist.On 10/18/05, aditya mandlekar [EMAIL PROTECTED] wrote: i am trying to developing web services for complex types string[] ,service simply accepts string[] as parameter and return string[] to client ... can any one plz help me thk Yahoo! Music Unlimited - Access over 1 million songs. Try it free.
Re: Marshalling/Unmarshalling Feature
Hi,thanks for the reply. Now, I went through the XMLBeans and worked with my schema. the scomp is even taking wsdl file. Now, how I integrate the beans generated from XMLBeans with Axis. In the stub as well as in the deployment descriptor file AxisSerializers are defined. What would be the case if I use XMLBeans (does it have separate serializers/deserializers). thanksvishist.On 10/17/05, Uday Kamath [EMAIL PROTECTED] wrote: XMLBeans is better than JAXB 1.0 implementations (especially sun) and it has support for all schemas and also for wsdls From: Vishist Mandapaka [mailto:[EMAIL PROTECTED]] Sent: Monday, October 17, 2005 3:29 PMTo: axis-user@ws.apache.orgSubject: Marshalling/Unmarshalling Feature Hi, Is there anyway that I could marshall the beans into XML and also unmarshall the XML document to java object. What I am asking is for a functionality similar to JAXB. I tried with castor. When I use castor, the wsdl generated from the webserver is not showing up the schema contents. Since that is required for us, I'm looking at alternatives to Castor. thanksvishist.
RE: performance
Is there another way to set this property besides on the command line? I tried to set the property using the server-config.wsdd with the globalConfiguration setting: parameter name=axis.xml.reuseParsers value=true/ However, when this does not appear to be working. I get: AxisProperties.getProperty(AxisEngine.PROP_XML_REUSE_SAX_PARSERS) = null I also get null for any of the other parameters that I am setting in this section. Am I missing something? How can I verify the setting is being used? Thanks, Ken -Original Message- From: Jyrki Saarinen [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 12, 2005 9:00 AM To: axis-user@ws.apache.org Subject: Re: performance On Wednesday 12 October 2005 15:57, Jyrki Saarinen wrote: On Saturday 08 October 2005 01:19, Eric Johnson wrote: In Axis 1.2.1, you probably want to set the system property -Daxis.xml.reuseParsers=true. In Axis 1.3, I believe the code was changed so this is the default. In case of someone else is interested on this, it isn't on as default: String value = AxisProperties.getProperty(AxisEngine.PROP_XML_REUSE_SAX_PARSERS, + true); if (value.equalsIgnoreCase(true) || value.equals(1) || value.equalsIgnoreCase(yes)) { enableParserReuse = true; } else { enableParserReuse = false; } Jyrki Äh, sorry. Of course it is on if the property is not specified, in which case AxisProperties.getProperty() returns true; Jyrki ** This message, including any attachments, contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, please contact sender immediately by reply e-mail and destroy all copies. You are hereby notified that any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited. TIAA-CREF **
Axis Session Issues
Hi, I have an eclipse RCP application that communicates with a server via axis web services. Running axis on both the client and the server. For my security model I'm trying to set a session object on the HttpServletRequest which I get by calling context.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST). I call conetxt.setMaintainSession(true) in the service and do the same on the client service object. In my initial login service I set a session object in the HttpSession attribute collection off the ServletRequest however when subsequent services are called by the same client the Httpsession object is not maintained and during debugging the boolean value of NewSession is set to true on the Session object. Does anyone know what I might be mssing? From reading the documentation I think I'm doing everything right. Thanks for any help. - Duncan
RE: performance
anything that's specified as -D on the command line is a System property so your next best bet is to have a static{} block in your main class (or some class that gets loaded very early - a load-on-startup servlet for example) that has: static { System.setProperty(axis.xml.reuseParsers, true); } or you can hunt down the block of code that reads that system property in and see if there's another way to insert that value in there. Is there another way to set this property besides on the command line? I tried to set the property using the server-config.wsdd with the globalConfiguration setting: parameter name=axis.xml.reuseParsers value=true/ However, when this does not appear to be working. I get: AxisProperties.getProperty(AxisEngine.PROP_XML_REUSE_SAX_PARSERS) = null I also get null for any of the other parameters that I am setting in this section. Am I missing something? How can I verify the setting is being used? Thanks, Ken -Original Message- From: Jyrki Saarinen [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 12, 2005 9:00 AM To: axis-user@ws.apache.org Subject: Re: performance On Wednesday 12 October 2005 15:57, Jyrki Saarinen wrote: On Saturday 08 October 2005 01:19, Eric Johnson wrote: In Axis 1.2.1, you probably want to set the system property -Daxis.xml.reuseParsers=true. In Axis 1.3, I believe the code was changed so this is the default. In case of someone else is interested on this, it isn't on as default: String value AxisProperties.getProperty(AxisEngine.PROP_XML_REUSE_SAX_PARSERS, + true); if (value.equalsIgnoreCase(true) || value.equals(1) || value.equalsIgnoreCase(yes)) { enableParserReuse = true; } else { enableParserReuse = false; } Jyrki Äh, sorry. Of course it is on if the property is not specified, in which case AxisProperties.getProperty() returns true; Jyrki ** This message, including any attachments, contains confidential information intended for a specific individual and purpose, and is protected by law. If you are not the intended recipient, please contact sender immediately by reply e-mail and destroy all copies. You are hereby notified that any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited. TIAA-CREF **
RE: Axis 1.2 handlers
I found the following in this article: http://www.fawcette.com/javapro/2003_04/online/wsdl_kjones_04_29_03/defa ult_pf.aspx From above article: To create an Axis client that uses simple sessions, you need to configure the Axis client-side framework to use the handler. The procedure is similar to that for the server, but instead of deploying to the server, the config file is created locally. You do this by running the org.apache.axis.utils.Admin application. You run the code like this: org.apache.axis.utils.Admin client deploy.wsdd Once you have a client-config.wsdd, you can configure the handler section same as for the server side. Raul -Original Message- From: Coyne, Jimmy [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 11:45 AM To: 'axis-user@ws.apache.org' Subject: Axis 1.2 handlers Hi all, Could any body show me some information on how to configure handlers on the axis client side ? Did a search on google , but came up with nothing . Thanks Jimmy
RE: Marshalling/Unmarshalling Feature
Axis 2.0 comes with XMLBeans serializer for Document Binding WSDLs. So when you run ant task or axis 2.0 wsdl2java you will get Stubs that automatically serialize/deserialize WSDL request/response to XMLBeans. This should be good for most of your requirement. If it doesn't then you can think of using your own serializer/deserializer by extending the XMLBeanSerialzier etc. -Uday From: Vishist Mandapaka [mailto:[EMAIL PROTECTED] Sent: Tue 10/18/2005 2:29 PM To: axis-user@ws.apache.org Subject: Re: Marshalling/Unmarshalling Feature Hi, thanks for the reply. Now, I went through the XMLBeans and worked with my schema. the scomp is even taking wsdl file. Now, how I integrate the beans generated from XMLBeans with Axis. In the stub as well as in the deployment descriptor file AxisSerializers are defined. What would be the case if I use XMLBeans (does it have separate serializers/deserializers). thanks vishist. On 10/17/05, Uday Kamath [EMAIL PROTECTED] wrote: XMLBeans is better than JAXB 1.0 implementations (especially sun) and it has support for all schemas and also for wsdls From: Vishist Mandapaka [mailto:[EMAIL PROTECTED] Sent: Monday, October 17, 2005 3:29 PM To: axis-user@ws.apache.org Subject: Marshalling/Unmarshalling Feature Hi, Is there anyway that I could marshall the beans into XML and also unmarshall the XML document to java object. What I am asking is for a functionality similar to JAXB. I tried with castor. When I use castor, the wsdl generated from the webserver is not showing up the schema contents. Since that is required for us, I'm looking at alternatives to Castor. thanks vishist. winmail.dat
RE: Axis 1.2 handlers
Don't At least one other way is via the HandlerRegistry, like so: //add ClientHandler to chain of events java.util.List list = svc.getHandlerRegistry().getHandlerChain(portQN); list.add(new javax.xml.rpc.handler.HandlerInfo(ClientHandler.class,this.handlerConfig,null)); ClientHandler in this case simply implements Handler . On the client side no wsdd necessary. HTH, iksrazal --- Flores, Raul [EMAIL PROTECTED] wrote: I found the following in this article: http://www.fawcette.com/javapro/2003_04/online/wsdl_kjones_04_29_03/defa ult_pf.aspx From above article: To create an Axis client that uses simple sessions, you need to configure the Axis client-side framework to use the handler. The procedure is similar to that for the server, but instead of deploying to the server, the config file is created locally. You do this by running the org.apache.axis.utils.Admin application. You run the code like this: org.apache.axis.utils.Admin client deploy.wsdd Once you have a client-config.wsdd, you can configure the handler section same as for the server side. Raul -Original Message- From: Coyne, Jimmy [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 18, 2005 11:45 AM To: 'axis-user@ws.apache.org' Subject: Axis 1.2 handlers Hi all, Could any body show me some information on how to configure handlers on the axis client side ? Did a search on google , but came up with nothing . Thanks Jimmy None are more hopelessly enslaved than those who falsely believe they are free. -- Goethe __ Start your day with Yahoo! - Make it your home page! http://www.yahoo.com/r/hs
Re: Catching custom Exceptions impossible!
I think I solved it. I had to add beanmappings to client-config.wsdd. Johan Walters 2005/10/17, Johan Walters [EMAIL PROTECTED]: Everywhere I look for clues, they say custom exceptions work right away, but whatever I try, they fail. My exceptions are _always_ caugth as a java.rmi.RemoteException. My Exception code: = package exceptions; public class OutOfResourcesException extends Exception { public OutOfResourcesException() { } } = My service class has a method: = public Resource getInput(String applicationName) throws OutOfResourcesException {...} = I use java2wsdl and wsdl2java to generate client-side proxy classes. In the client source tree, a exceptions_client.OutOfResourcesException.java is actually generated. On the client-side I have: = locator = new JarDistributionServiceLocator(); jd = locator.getJarDistribution(); try { resource = jd.getInput(applicationName); } catch (OutOfResourcesException e) {} } catch (RemoteException e) {} = Still, EVERY time the OutOfResourcesException is thrown, it is catched as a RemoteExeption!!! The error message is: exceptions.OutOfResourcesException. WHY does this go wrong !?!? Johan Walters
Cannot serialize session attribute...
I got following errors only when I shutdown the tomcat and restart it: - Cannot serialize session attribute AddressBook for session 9A3E7318701815FCC6E 62C512464A437 java.io.NotSerializableException: ws.addr.AddressBookServiceSoapImpl ... I didn't get the errors during the process. Are there any ideas how to fix it? -Henry ** Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues.
Element tag before complex type
Title: Element tag before complex type I created WSDL1 using Axis and it works fine. However, the Weblogic scripts (it seems) need an xsd which looks like the one in WSDL2. Are these two WSDLs different because of the element tag ? How to create such a WSDL ? WSDL1 wsdl:types schema targetNamespace=http://mytarget.com xmlns=http://www.w3.org/2001/XMLSchema import namespace=http://schemas.xmlsoap.org/soap/encoding/ / complexType name=MyComplexObject WSDL2 wsdl:types schema targetNamespace=http://mytarget.com xmlns=http://www.w3.org/2001/XMLSchema import namespace=http://schemas.xmlsoap.org/soap/encoding/ / s:element name=MyComplexObject complexType Thanks in advance.
Re: performance
Hoying, Ken wrote: Is there another way to set this property besides on the command line? I tried to set the property using the server-config.wsdd with the globalConfiguration setting: parameter name=axis.xml.reuseParsers value=true/ Indeed, this doesn't work. Axis first needs to create a parser to read the XML that contains this setting, which triggers the default setting. So you have to set this setting before you ever attempt to use any part of Axis that requires an XML parser. However, when this does not appear to be working. I get: AxisProperties.getProperty(AxisEngine.PROP_XML_REUSE_SAX_PARSERS) = null I also get null for any of the other parameters that I am setting in this section. Am I missing something? How can I verify the setting is being used? Thanks, Ken
Re: [Axis2] Asynchronous dual client
What version are you using. If its something before 0.91, I think it was a bug. But I fixed this. Please refer http://issues.apache.org/jira/browse/AXIS2-185 for more details. This should be fixed in our latest release of 0.92, else you can get a svn checkout and build. Since we are using maven, its now very much easier to get a checkout and build from the source. ;-) -- Chinthaka Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi guys, Ok, Axis sets the headers, but the problem is that Axis sets the ReplyTo to "127.0.0.1" (no the real machine IP) so the response never will reach the machine that made the request. That is why I wanted to change the header. -Mensaje original- De: Srinath Perera [mailto:[EMAIL PROTECTED]] Enviado el: martes, 18 de octubre de 2005 14:49 Para: axis-user@ws.apache.org Asunto: Re: [Axis2] Asynchronous dual client +1 Eran is 100% right. this is not a bug. If you choose the In-Out mep that means you hand over the control to Axis2. So you can not set the Adressing Headers. (Becouse Axis2 will set up a listener fo you and waiting for reply). If you need to contol addressing use In-Only MEP. Let us close the bug For more info read the "In-Only MEP Support: InOnlyMEPClient" part of article http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html Srinath On 10/18/05, Eran Chinthaka [EMAIL PROTECTED] wrote: Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty("subscribe.action")); call.setSoapAction(myProp.getProperty("subscribe.action")); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.Subscribe OpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty ("s ubscribe.replayto")); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty("msg_id_template") + new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrnico y, en su caso, cualquier fichero anexo al mismo, contiene informacin de carcter confidencial exclusivamente dirigida a su destinatario o destinatarios y propiedad de Vodafone Espaa. Queda prohibida su divulgacin, copia o distribucin a terceros sin la previa autorizacin escrita de Vodafone Espaa, en virtud de la legislacin vigente. En el caso de haber recibido este correo electrnico por error, se ruega notificar inmediatamente esta circunstancia mediante reenvo a la direccin electrnica del remitente y la destruccin del mismo. Confidentiality The information in this e-mail and in any attachments is classified as Vodafone Espaa Confidential and Proprietary Information and solely for the attention and use of the named addressee(s). You are hereby notified that any dissemination, distribution or copy of this communication is prohibited without the prior written consent of Vodafone Espaa and is s strictly prohibited by law. If you have received this communication in error, please, notify
Re: [Axis2] Asynchronous dual client
This was fixed yesterday. Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi again, I think I have found other problem, in the same scenario. When using "Call" with two connections, (Axis generates the header and does not allow changes), the element MessageId that is inserted is a number, and it should be an URI. I am using Axis2-0.9, maybe it works in other version. Anyone knows? Is it a bug? Thanks. --- soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" soapenv:Header wsa:To xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"http://localhost:8060/wsa:To wsa:Action xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe/wsa:Action wsa:ReplyTo xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" wsa:Addresshttp://127.0.0.1:6060/axis/services/EventSource/SubscribeOp/wsa:Address /wsa:ReplyTo wsa:MessageID xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"1129648347852/wsa:MessageID /soapenv:Header --- -Mensaje original- De: Srinath Perera [mailto:[EMAIL PROTECTED]] Enviado el: martes, 18 de octubre de 2005 14:49 Para: axis-user@ws.apache.org Asunto: Re: [Axis2] Asynchronous dual client +1 Eran is 100% right. this is not a bug. If you choose the In-Out mep that means you hand over the control to Axis2. So you can not set the Adressing Headers. (Becouse Axis2 will set up a listener fo you and waiting for reply). If you need to contol addressing use In-Only MEP. Let us close the bug For more info read the "In-Only MEP Support: InOnlyMEPClient" part of article http://www.onjava.com/pub/a/onjava/2005/07/27/axis2.html Srinath On 10/18/05, Eran Chinthaka [EMAIL PROTECTED] wrote: Villalba, Gregorio, VF-ES (gvillal2) EXT wrote: Hi, I am developing a WS client with Axis2 code generator. I want to use dual transport, I engage the Addressing module and I configure the transport as dual but I can not change the ReplayTo element (that automatically appears like localhost)! It can not be changed with messageContext.setReplyTo(aERPReplayTo). Any idea? hmm, seems like you are violating the MEP concept here. Using Call means you are invoking an IN-OUT service. So when you send a message using Call api, the reply MUST come back to the same Call. That means you are not allowed to mess around with the replyTo. The engine will set a dynamic replyTo address for you, which then starts up a listener with the given transport, and listens to a message. If you are allowed to set the replyTo, you could have set that to some other EPR, and the Call which u used to invoke the service will timeout. Thats why you are not allowed to set replyTo information. So actually what you need to do is, invoke your IN-OUT web service using IN-Only manner and set the replyTo address to wherever you want. That means you basically have one client who thinks that this is an IN-Only invocation and for another client who thinks that it is an OUT only service. So this voids Axis2-284. So please close that issue too. HTH. -- Chinthaka Thanks in advance. That is the code: org.apache.axis2.context.MessageContext messageContext = getMessageContext(); Call call = new Call(_serviceContext); call.setTo(this.toEPR); call.engageModule(new QName(Constants.MODULE_ADDRESSING)); boolean DUAL_TRANSPORT = true; call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP,true); call.setWsaAction(myProp.getProperty("subscribe.action")); call.setSoapAction(myProp.getProperty("subscribe.action")); org.apache.axis2.soap.SOAPEnvelope env = createEnvelope(); //Style is Doc setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.Subscribe OpD atabindingSupporter.toOM(body)); EndpointReference aERPReplayTo = new EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty ("s ubscribe.replayto")); messageContext.setReplyTo(aERPReplayTo); messageContext.setMessageID(myProp.getProperty("msg_id_template") + new VMID().toString()); messageContext.setEnvelope(env); call.invokeNonBlocking(operations[0], messageContext, callback); Confidencialidad Este correo electrnico y, en su caso, cualquier fichero anexo al mismo, contiene informacin de carcter confidencial exclusivamente
Re: developing web services for complex types
thks vishist, but will this wotk for string[]..Vishist Mandapaka [EMAIL PROTECTED] wrote: Aditya, Why don't you use xsd for this, you can declare in the wsdl types asxsd:element name="myStringArrayInput"xsd:complexType xsd:sequence xsd:element name="StringName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/ /xsd:sequence/xsd:complexType/xsd:elementI think, the above schema will help you.thanksvishist. On 10/18/05, aditya mandlekar [EMAIL PROTECTED] wrote: i am trying to developing web services for complex types string[] ,service simply accepts string[] as parameter and return string[] to client ... can any one plz help me thk Yahoo! Music Unlimited - Access over 1 million songs. Try it free. Yahoo! Music Unlimited - Access over 1 million songs. Try it free.
Re: Cannot serialize session attribute...
the easy fix is to make AddressBookServiceSoapImpl serializable. not sure why it's ending up in session. the other way to fix this (it isn't really an error - it's just that the session manager is trying to persist your sessions to disk and finds this class in session lacking in its ability to be written to and then later read from disk - in most cases this is a Good Thing as these types of objects are stateful in a way that they can't simply be re-loaded from disk and work) is to use the PersistentManager with a setting of saveOnRestart=false as described in http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html . or you can just ignore the error and be thankful that your AddressBookServiceSoapImpl objects won't be reloaded from disk when Tomcat is restarted. :) Henry Lu wrote: I got following errors only when I shutdown the tomcat and restart it: - Cannot serialize session attribute AddressBook for session 9A3E7318701815FCC6E 62C512464A437 java.io.NotSerializableException: ws.addr.AddressBookServiceSoapImpl ... I didn't get the errors during the process. Are there any ideas how to fix it? -Henry ** Electronic Mail is not secure, may not be read every day, and should not be used for urgent or sensitive issues.
Re: WSDL2Java questions-Axis2
See my commentsOn 10/19/05, Uday Kamath [EMAIL PROTECTED] wrote: 1. I coudl use WSDL2Java to generate XMLBeans code for Document based binding of WSDL. The Stub code generates call for blocking/non blocking using HTTP transport mechanism.Can this be configurable ? else what should be the good way to make this configurable so that it can be other things? if you are refering to generating blocking only and no-blocking only code you can use the -a and -s options :) 2. Also how on the client side for these generated stubs Security Handlers can be added ? Is there a way to add some configuration file on client side for specific Stub/Services to use specific Handlers and yet use the generated code ? Can any one please give some pointers Ruchith commented nicely on this ThanksUday-- Ajith Ranabahu