wsdl2java issues
Hello all, I encoutered a strange problem when upgrading to Axis 1.2 from 1.2RC2, a WSDL file stopped compiling with wsdl2java. Here's the command line that I use to compile: java -classpath lib/axis.jar:lib/commons-logging-1.0.4.jar:lib/commons-discovery-0.2.jar:lib/wsdl4j-1.5.1.jar:lib/saaj.jar:lib/jaxrpc.jar:lib/mailapi.jar org.apache.axis.wsdl.WSDL2Java --server-side --skeletonDeploy true -o src xml/mssp.wsdl Here is the error message from wsdl2java: java.io.IOException: Type {http://www.w3.org/2000/09/xmldsig#}SignatureProperty is referenced but not defined. at org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:663) at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:493) at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:360) at java.lang.Thread.run(Thread.java:534) SignatureProperty is defined in xmldsig-core-schema.xsd if I understand it correctly. Find the WSDL and required XML schemas attached, I would be happy if someone understands what is happening here? Jyrki http://schemas.xmlsoap.org/wsdl/"; 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/"; xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:mss="http://uri.etsi.org/TS102204/v1.1.2#"; xmlns:vv="http://www.valimo.com/soap/mssp"; targetNamespace="http://www.valimo.com/soap/mssp";> http://uri.etsi.org/2003/v1.1.2#"; location="mss.xsd"/> http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" targetNamespace="empty"/> http://schemas.xmlsoap.org/soap/http"/> http://schemas.xmlsoap.org/soap/http"/> http://schemas.xmlsoap.org/soap/http"/> http://schemas.xmlsoap.org/soap/http"/> http://schemas.xmlsoap.org/soap/http"/> http://schemas.xmlsoap.org/soap/http"/> http://schemas.xmlsoap.org/soap/http"/>
Axis and JAX-RPC deserializing problem
I used JAX-RPC to send an XML to the AXIS webservice. I got the error on the client side. No Deserilizer found for type simpleTyple Anyidea? Thanks
how to make a call with a complex type array?
Please can someone point out what's wrong with my client? My service and wsdl are fine - if I generate a soap message from the wsdl and enter the parameters I get the right response from the service. But when I use the client below I get an exception about finding character data inside the array (?). I know the QName bits are OK because I've used them successfully when I send single objects of this type. I'm using a wrapped/literal service. First I create an array ( called entries) of user-defined types. Then I say inside a try..catch block: String endpoint = "http://..";; Service service = new Service(); String method = "storeMultiple"; QName qn = new QName("urn:DictServiceImpl", "DictEntry"); Call call = (Call) service.createCall(); call.registerTypeMapping(DictEntry.class, qn, new BeanSerializerFactory(DictEntry.class, qn), new BeanDeserializerFactory(DictEntry.class, qn)); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName(new QName("dct", method)); call.addParameter("entries", qn, ParameterMode.IN); call.setReturnType(org.apache.axis.Constants.XSD_STRING); String ret = (String) call.invoke( new Object[] { entries } ); Any help much appreciated. Thanks in advance. Madeleine
stub.getResponseHeader(String, String)
I'm working with Axis 1.2RC3. The class generated by WSDL2Java extends org.apache.axis.client.Stub which according to Eclipse has the following methods: getResponseHeaders() and getResponseHeader(String, String) The online docs don't describe these methods. They refer to getResponseHeader(Call), which has been deprecated. Does anyone know what the arguments mean to getResponseHeader()? I can see in the test code that getResponseHeaders() returns an array of four objects, and I can see that one I want, but the docs confuse me so. Thanks -j
Problems using Java2WSDL
I am having trouble running the Java2WSDL example (example6) in the axis user guide. First, I had problems with the first option of the -p command. I changed the -p to --PkgtoNS and got past that. Now I am getting a ClassNotFoundException on the filename parameter (class of port-type). I have copied the command line as it appears in the user guide. I am using ant to invoke the Java2WSDL. The basedir is one level above the package root. I get the same error regardless of whether I use full path name to the file, the relative path name, or the package name. The file exists at the full path name that appears in the error message. This is a snippet of the ant build file with the Java2WSDL arguments: http://localhost:8080/axis/services/WidgetPrice -n urn:Example6 --PkgtoNS samples.userguide.example6 urn:Example6 ${src}/samples.userguide.example6.WidgetPrice"/> Has anyone else encountered this problem or have any suggestions? TIA.
Re: Axis and JAX-RPC
Anne, Thanks! Frank Anne Thomas Manes wrote: JAX-RPC is simply the programming API. JWSDP and Axis are SOAP implementations, and JAX-RPC is the API you use to invoke SOAP requests. There are lots of other JAX-RPC implementations. Every J2EE V1.4 compliant app service includes an implementation of JAX-RPC (WAS 6, WebLogic 8, Oracle 10g, JBoss, etc). In addition, Systinet and Cape Clear support JAX-RPC. Anne On 5/10/05, Frank <[EMAIL PROTECTED]> wrote: Anne Thomas Manes wrote: JAX-RPC is the standard Java API for SOAP. (JAX-RPC is to SOAP as JDBC is to DBMS and as JMS is to MOM.) Most SOAP implementations for Java implement the JAX-RPC API -- including Axis. So Axis is sort of a layer of abstraction above using JAX-RPC alone? I assume your request for comparison is with Sun's reference implementation of JAX-RPC, which is distributed as part of Sun's Java Web Services Developer Pack (JWSDP). Yea you got it. That's what i have been looking at. Getting it to work was a little ugly. I, too, think that Axis is much easier to use than Sun's JWSDP. I suggest you start with the Axis documentation and the wiki. You can also find lots of tutorials for Axis using Google. Anne On 5/10/05, Frank <[EMAIL PROTECTED]> wrote: I'm still fairly new to Web Services and XML. Still trying to understand how to create a Web service using Java. It seems you have a number of options. I was first looking at doing it in JAX-RPC, java code simple for the most part but the buld.xlm was real fun to get to work fro even the hello world. Just found this Apache Axis, seems to be easier. Any one provide any advice etc on this, points to reviews/comparisons? Thanks, Frank
Re: Axis and JAX-RPC
JAX-RPC is simply the programming API. JWSDP and Axis are SOAP implementations, and JAX-RPC is the API you use to invoke SOAP requests. There are lots of other JAX-RPC implementations. Every J2EE V1.4 compliant app service includes an implementation of JAX-RPC (WAS 6, WebLogic 8, Oracle 10g, JBoss, etc). In addition, Systinet and Cape Clear support JAX-RPC. Anne On 5/10/05, Frank <[EMAIL PROTECTED]> wrote: > > > Anne Thomas Manes wrote: > > JAX-RPC is the standard Java API for SOAP. (JAX-RPC is to SOAP as JDBC > is to DBMS and as JMS is to MOM.) Most SOAP implementations for Java > implement the JAX-RPC API -- including Axis. > So Axis is sort of a layer of abstraction above using JAX-RPC alone? > > > I assume your request for comparison is with Sun's reference > implementation of JAX-RPC, which is distributed as part of Sun's Java > Web Services Developer Pack (JWSDP). > > Yea you got it. That's what i have been looking at. Getting it to work was > a little ugly. > > > > I, too, think that Axis is much easier to use than Sun's JWSDP. > > I suggest you start with the Axis documentation and the wiki. You can > also find lots of tutorials for Axis using Google. > > Anne > > On 5/10/05, Frank <[EMAIL PROTECTED]> wrote: > > > I'm still fairly new to Web Services and XML. Still trying to > understand how to create a Web service using Java. It seems you have a > number of options. I was first looking at doing it in JAX-RPC, java code > simple for the most part but the buld.xlm was real fun to get to work > fro even the hello world. Just found this Apache Axis, seems to be > easier. Any one provide any advice etc on this, points to > reviews/comparisons? > > Thanks, > > Frank > > > > > >
Re: Axis and JAX-RPC
Anne Thomas Manes wrote: JAX-RPC is the standard Java API for SOAP. (JAX-RPC is to SOAP as JDBC is to DBMS and as JMS is to MOM.) Most SOAP implementations for Java implement the JAX-RPC API -- including Axis. So Axis is sort of a layer of abstraction above using JAX-RPC alone? I assume your request for comparison is with Sun's reference implementation of JAX-RPC, which is distributed as part of Sun's Java Web Services Developer Pack (JWSDP). Yea you got it. That's what i have been looking at. Getting it to work was a little ugly. I, too, think that Axis is much easier to use than Sun's JWSDP. I suggest you start with the Axis documentation and the wiki. You can also find lots of tutorials for Axis using Google. Anne On 5/10/05, Frank <[EMAIL PROTECTED]> wrote: I'm still fairly new to Web Services and XML. Still trying to understand how to create a Web service using Java. It seems you have a number of options. I was first looking at doing it in JAX-RPC, java code simple for the most part but the buld.xlm was real fun to get to work fro even the hello world. Just found this Apache Axis, seems to be easier. Any one provide any advice etc on this, points to reviews/comparisons? Thanks, Frank
Re: Axis and JAX-RPC
I hadn't realized there were other implementations of JAX-RPC, besides the RI and Axis. What other implementations are available? - Dennis Anne Thomas Manes wrote: JAX-RPC is the standard Java API for SOAP. (JAX-RPC is to SOAP as JDBC is to DBMS and as JMS is to MOM.) Most SOAP implementations for Java implement the JAX-RPC API -- including Axis. I assume your request for comparison is with Sun's reference implementation of JAX-RPC, which is distributed as part of Sun's Java Web Services Developer Pack (JWSDP). I, too, think that Axis is much easier to use than Sun's JWSDP. I suggest you start with the Axis documentation and the wiki. You can also find lots of tutorials for Axis using Google. Anne On 5/10/05, Frank <[EMAIL PROTECTED]> wrote: I'm still fairly new to Web Services and XML. Still trying to understand how to create a Web service using Java. It seems you have a number of options. I was first looking at doing it in JAX-RPC, java code simple for the most part but the buld.xlm was real fun to get to work fro even the hello world. Just found this Apache Axis, seems to be easier. Any one provide any advice etc on this, points to reviews/comparisons? Thanks, Frank
Re: Axis and JAX-RPC
JAX-RPC is the standard Java API for SOAP. (JAX-RPC is to SOAP as JDBC is to DBMS and as JMS is to MOM.) Most SOAP implementations for Java implement the JAX-RPC API -- including Axis. I assume your request for comparison is with Sun's reference implementation of JAX-RPC, which is distributed as part of Sun's Java Web Services Developer Pack (JWSDP). I, too, think that Axis is much easier to use than Sun's JWSDP. I suggest you start with the Axis documentation and the wiki. You can also find lots of tutorials for Axis using Google. Anne On 5/10/05, Frank <[EMAIL PROTECTED]> wrote: > > > I'm still fairly new to Web Services and XML. Still trying to > understand how to create a Web service using Java. It seems you have a > number of options. I was first looking at doing it in JAX-RPC, java code > simple for the most part but the buld.xlm was real fun to get to work > fro even the hello world. Just found this Apache Axis, seems to be > easier. Any one provide any advice etc on this, points to > reviews/comparisons? > > Thanks, > > Frank > >
Axis and JAX-RPC
I'm still fairly new to Web Services and XML. Still trying to understand how to create a Web service using Java. It seems you have a number of options. I was first looking at doing it in JAX-RPC, java code simple for the most part but the buld.xlm was real fun to get to work fro even the hello world. Just found this Apache Axis, seems to be easier. Any one provide any advice etc on this, points to reviews/comparisons? Thanks, Frank
MessageContext.getCurrentContext() is null
Hello all I have a web service with some methods - when i publish it not all methods will be exposed, but those that are exposed will call the unexposed methods One unexposed method is addSOAPHeader, which gets called when a user is validated. When I call the addSOAPHeader method i need to call the handleRequest/Response method with the MessageContext. I'm doing it like this but doesn't work - the MesaageContext is null MessageContext context = MessageContext.getCurrentContext(); handleResponse(context); Am i missing something in my addSOAPHeader method? Any help greatly appreciated public static String addSOAPHeader(String token) throws Exception { Service service = new Service(); Call call = (Call)service.createCall(); SOAPHeaderElement tokenHeader = new SOAPHeaderElement("","TokenHeader"); tokenHeader.setObjectValue(token); call.addHeader(tokenHeader); MessageContext context = MessageContext.getCurrentContext(); SOAPHandler.handleRequest(context); return token; } SOAPHandler class public void invoke(MessageContext msgContext) throws AxisFault { handleResponse(msgContext); super.invoke(msgContext); } public static boolean handleResponse(MessageContext msgContext) { try { Message message = msgContext.getResponseMessage(); SOAPEnvelope responseEnvelope = message.getSOAPEnvelope(); SOAPHeaderElement headerElement = responseEnvelope.getHeaderByName("","TokenHeader"); if (headerElement != null) { String headerElementValue = (String)headerElement.getValue(); // make sure the headerElementValue is valid validateTokenValue(headerElementValue); } else { // something's gone wrong } } catch(Exception e) { System.out.println(e); } return true; } public static boolean handleRequest(MessageContext msgContext) { try { Message message = msgContext.getRequestMessage(); SOAPEnvelope requestEnvelope = message.getSOAPEnvelope(); SOAPHeaderElement headerElement = requestEnvelope.getHeaderByName("","TokenHeader"); if (headerElement != null) { String headerElementValue = (String)headerElement.getValue(); // make sure the headerElementValue is valid validateTokenValue(headerElementValue); } else { // something's gone wrong } } catch(Exception e) { System.out.println(e); } return true; } _ Want to block unwanted pop-ups? Download the free MSN Toolbar now! http://toolbar.msn.co.uk/
Re: Axis 1.2 vs 1.2RC3 for UDDI v3 WSDLs
I can only assume that your WSDL references the dsig:SignatureProperty type, but the type is not defined. Make sure all your imports are correct and the dsig schema is available at the location you've specified. On the other hand, I'm not convinced that you need to follow the JAX-RPC technical note. The JAX-RPC note removes use of the compositor and the "final" attribute. If the tool you're using supports these features, then there's no need to follow the guidelines defined in the JAX-RPC technical note. Axis supports the compositor. I don't know whether it supports the "final" attribute. I suggest that you try running wsdl2java using the standard WSDLs and see if that works. Anne On 5/10/05, Volodymyr Ilchenko <[EMAIL PROTECTED]> wrote: > Hi All, > > I have a problem with Axis 1.2 release, which I didn't have with Axis > 1.2RC3. > > I try to use WSDL2Java tool to generate Java sources from UDDI v3 WSDLs > (http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3). > The WSDLs are updated to conform to JAXRPC 1.1 spec as described at > http://www.oasis-open.org/committees/uddi-spec/doc/tns.htm#jaxrpc11 > > I get the following error during generation: > > java.io.IOException: Type > {http://www.w3.org/2000/09/xmldsig#}SignatureProperty is referenced but > not defined. > at > org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:663) > at > org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543) > at > org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516) > at > org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:493) > at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:360) > at java.lang.Thread.run(Thread.java:534) > > The command line parameters are: > -s -o src uddi_v3_service.wsdl > > All the WSDL's are available locally. > > Java version is j2sdk1.4.2_07. > > What's wrong? > > Best regards, > Volodymyr >
Re: Using Castor Serialization results in xsi:type coding being specified in the SOAP message
I had the same problem: I use castor to serialize my parameters and it added the xsi:type attribute, so the request was rejected at server side, complaining that it is not valid. I first tried to do this in my stub class: call.setOption(Call.SEND_TYPE_ATTR, Boolean.FALSE); But it did not work because the Castor serializer does not care... So I looked for the option in the Castor classes and found that there is a suppressXSIType field in the Marshaller class. So it finally worked fine by doing the following in the CastorSerializer class: marshaller.setSuppressXSIType(true); Sorry for this late response, I hope this can help... Johan. This is a PRIVATE message. If you are not the intended recipient, please delete without copying and kindly advise us by e-mail of the mistake in delivery. NOTE: Regardless of content, this e-mail shall not operate to bind CSC to any order or other contract unless pursuant to explicit written agreement or government initiative expressly permitting the use of e-mail for such purpose. "Clement Lyons" @comindico.com.a cc: u> Subject: Using Castor Serialization results in xsi:type coding being specified in the SOAP message 04/05/2005 09:27 Please respond to axis-user Hi I'm setting up a web using Axis 1.2 RC3 using castor for (De)serialization as described in http://www-106.ibm.com/developerworks/webservices/library/ws-castor/ as I want to use the castor XML validation. When I run the example supplied I get the following I get the following response http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> http://comindico.com.au/sqtest";> IBM 979012312 678.0 1115179465600 678.0 300.0 true I am relatively new to Web Service and Axis but my understanding is that this is a wrapped service and that the xsi:type coded in the element should not be there as the WSDL specifies literal. When I use the Axis Bean (De)serialization this is not present. Can anyone tell me 1. If this is correct/incorrect behaviour 2. If this will cause any interop issues 3. If there is a fix or work around for this I've had a browse in the lists but can't find anything on this. /Clement
Re: very urgent - SAXException
Surendar, Could you post your complete WSDL content obtained using "?WSDL" and the WSDD you have used for deploying the service? -- venkat On 5/10/05, Surendar Suram <[EMAIL PROTECTED]> wrote: > Here is my WSDL Looks like > > > > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; > base="soapenc:Array"> > http://schemas.xmlsoap.org/wsdl/"; > ref="soapenc:arrayType" > wsdl:arrayType="stns:TroubleTicketSummaryList[]"> > > > > > > I have generated Client stubs by using WSDL2JAVA tool. > > But when i'm trying to access the WebService by writing Apache client. > I'm > getting the SAX Exception. But with WebLogic Client it is not > happening. > > May 9, 2005 1:29:04 PM org.apache.axis.client.Call invoke > SEVERE: Exception: > org.xml.sax.SAXException: Invalid element in > org.bls.bst.erepair.client.QryTroubleTicketDetail - statusHistList >at > org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:260) >at > org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:963) >at > org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198) >at > org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722) >at > org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233) >at > org.apache.axis.message.RPCElement.getParams(RPCElement.java:347) >at org.apache.axis.client.Call.invoke(Call.java:2272) >at org.apache.axis.client.Call.invoke(Call.java:2171) >at org.apache.axis.client.Call.invoke(Call.java:1691) >at > org.bls.bst.erepair.client.ErepairtrblmgmtPortStub.queryTicketDetail(ErepairtrblmgmtPortStub.java:700) >at > com.bls.bst.erepair.client.WebServiceHandler.execute(WebServiceHandler.java:230) >at > com.bls.bst.erepair.webservice.EgateTestClient.processQueryTicketDetail(EgateTestClient.java:1272) >at > com.bls.bst.erepair.webservice.EgateTestClient.main(EgateTestClient.java:1668) > > I will be very great full if any body can show me the path. > > PS: I was wondering like can't we use Array Type for Apache Axis or > some thing wrong with my WSDL. > > Thanks in Adavance, > Surendar. > > Senior Developer. >
Re: HashMap vs. Map
Hey Keith, thanks for your opinion. I really appreciate that. It's absolutely correct what you're saying - do not use language-specific datatypes if you don't want to make other developers lifes harder. But in this case: it's an internal service only, so i know for sure that both endpoints are Java. Perhaps "Web Service" is the wrong approach to my problem. Keith Hatton schrieb: Hi Mike, You are right, the Axis WSDL tools will only generate interfaces where the method signatures contain concrete classes. But using a Map is generally a Bad Idea in SOAP, because it is a language-specific data type (likewise other Java collection things like List and Vector). You may be able to make it work if both client and server are Java, but SOAP is not designed with that goal in mind. You may also wish to consider using a two-dimensional array instead for your key-value pairs. I am sure if you search the list archives for "WSDL first" you will find plenty of advice suggesting that for best practice with Web Services, you should start with the WSDL and not a Java interface (Java2WSDL and the like are nice "marketing" tools for people to sell you the idea that Web Services are easy and don't involve writing any new code!). Really, SOAP is just a way of passing messages between systems, not objects. I found the following article on "Web Services misconceptions" useful. http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000343.html Of course, you might still have a good reason to use a Map and I wouldn't try to stop you, but I think all us developers often spend effort working on the wrong problems, so just wanted to point out these alternative ideas. Good luck anyway! Hope this helps Keith -Original Message- From: Mike Haller [mailto:[EMAIL PROTECTED] Sent: 10 May 2005 11:52 To: axis-user@ws.apache.org Subject: Re: HashMap vs. Map Thanks for your fast answer Keith. So, it's not possible to get "clean" generated interfaces? And there is no way to tell Axis to generate interfaces using interfaces and skels/stubs using concrete classes? It can use whatever Map-implementation it likes to use, as long as the generated interfaces use the Map interface. Keith Hatton schrieb: I can answer the first part of your question. It's using HashMap because Axis cannot instantiate an interface or abstract class. When Axis receives your XML it must build concrete object instances, so it must declare a concrete class. Otherwise which implementation of Map should it choose? Hope this helps Keith -Original Message- From: Mike Haller [mailto:[EMAIL PROTECTED] Sent: 10 May 2005 11:00 To: axis-user@ws.apache.org Subject: HashMap vs. Map Hi all, using Axis 1.2 I'm trying to implement my own service: public interface MyService { public org.w3c.dom.Document listObjects(java.util.Map parameters); } Sadly, the generated code (java2wsdl and then wsdl2java) is generating this interface: public interface MyService extends java.rmi.Remote { public org.w3c.dom.Document listObjects(java.util.HashMap in0) throws java.rmi.RemoteException; } Note the difference: Map and HashMap in the method signatures. Why is it using HashMap instead of Map? To solve this, i tried to implement my own GeneratorFactory, but failed to find the location where the mapping is resolved. I also found out that there are elements - but where do I have to add them, since the WSDL file is regenerated on each build. So, I hope someone can tell me where I can tell Axis' wsdl2java to use Map instead of HashMap. Thanks, regards Mike
Re: fault returning zero-length array
The same thing happens if I return null instead of a zero-length array. Fernando D. Mato Mira wrote: Hello, I am using Axis 1.2 Final, Java 1.4.2_08 on Solaris 9. When I try to return an array of length zero, I get an InvocationTargetException (faultCode: Server.userException). Is there anything one can do about it? Thanks -- -- Fernando D. Mato Mira [EMAIL PROTECTED] Thomson Corporation Switzerland AG
RE: HashMap vs. Map
Hi Mike, You are right, the Axis WSDL tools will only generate interfaces where the method signatures contain concrete classes. But using a Map is generally a Bad Idea in SOAP, because it is a language-specific data type (likewise other Java collection things like List and Vector). You may be able to make it work if both client and server are Java, but SOAP is not designed with that goal in mind. You may also wish to consider using a two-dimensional array instead for your key-value pairs. I am sure if you search the list archives for "WSDL first" you will find plenty of advice suggesting that for best practice with Web Services, you should start with the WSDL and not a Java interface (Java2WSDL and the like are nice "marketing" tools for people to sell you the idea that Web Services are easy and don't involve writing any new code!). Really, SOAP is just a way of passing messages between systems, not objects. I found the following article on "Web Services misconceptions" useful. http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000343.html Of course, you might still have a good reason to use a Map and I wouldn't try to stop you, but I think all us developers often spend effort working on the wrong problems, so just wanted to point out these alternative ideas. Good luck anyway! Hope this helps Keith -Original Message- From: Mike Haller [mailto:[EMAIL PROTECTED] Sent: 10 May 2005 11:52 To: axis-user@ws.apache.org Subject: Re: HashMap vs. Map Thanks for your fast answer Keith. So, it's not possible to get "clean" generated interfaces? And there is no way to tell Axis to generate interfaces using interfaces and skels/stubs using concrete classes? It can use whatever Map-implementation it likes to use, as long as the generated interfaces use the Map interface. Keith Hatton schrieb: > I can answer the first part of your question. > > It's using HashMap because Axis cannot instantiate an interface or > abstract class. When Axis receives your XML it must build concrete > object instances, so it must declare a concrete class. Otherwise which > implementation of Map should it choose? > > Hope this helps > Keith > > > -Original Message- > From: Mike Haller [mailto:[EMAIL PROTECTED] > Sent: 10 May 2005 11:00 > To: axis-user@ws.apache.org > Subject: HashMap vs. Map > > > Hi all, > > using Axis 1.2 > I'm trying to implement my own service: > > public interface MyService { > public org.w3c.dom.Document listObjects(java.util.Map > parameters); } > > Sadly, the generated code (java2wsdl and then wsdl2java) is generating > this interface: > > public interface MyService extends java.rmi.Remote { > public org.w3c.dom.Document listObjects(java.util.HashMap in0) > throws java.rmi.RemoteException; > } > > Note the difference: Map and HashMap in the method signatures. > > Why is it using HashMap instead of Map? > > To solve this, i tried to implement my own GeneratorFactory, but > failed > to find the location where the mapping is resolved. I also found out > that there are elements - but where do I have to add them, > > since the WSDL file is regenerated on each build. > > So, I hope someone can tell me where I can tell Axis' wsdl2java to use > Map instead of HashMap. > > Thanks, > regards > Mike
Re: NULL Values
Hello everybody Excuse me! I haven't search enough in the maillist. I found the solution in this thread http://marc.theaimsgroup.com/?l=axis-user&m=110267619124479&w=2 [Re: How NOT to generate empty elements is soap message?] and create me a new axis.jar! But I'm always unhappy with this solution. Maybe the axis-developers can make this configurable with setting a property in the version 1.3. Where else can I place this request? best regards Alex Alexander Mischur wrote: Hello everybody, I had problems with NULL values of parameters. My Client sent always this: 987654321 12345678 but the webservice i called, wants this if the callid is null: 987654321 12345678 So, the tag callid musst not be sent. I've generated the stub with wsdl2java from the wsdl. I'll set this code in the method: _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); _call.setProperty(org.apache.axis.AxisEngine.PROP_SEND_XSI, Boolean.FALSE); So, please help me, because i don't know the attribute which i had to set or which combination of attributes. Thx alex
Re: Generating WSDL with axis2-M1
Axis 1.2 final I would say On 5/10/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > Thanks Srikanth. > This clarifies. But to try out my development on Web Services which > version of axis would be the best. > > Regards, > Satya > > -Original Message- > From: Srinath Perera [mailto:[EMAIL PROTECTED] > Sent: Tuesday, May 10, 2005 4:05 PM > To: axis-user@ws.apache.org > Subject: Re: Generating WSDL with axis2-M1 > > Hi Satya; > > Axis2 M1 is just a Milstone relase and have limited functionality. It > does not have the WSDL generation or codegen support built in. > > Axis2 M2 which is due in month or so, will have WSDL codegn support > (limited) but I can not give time line for WSDL generateion support > Cheers Srinath > > On 5/10/05, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > I am new to Web Services and Axis. I have successfully deployed a web > > service on a tomcat server and would like to know how to generate the > > WSDL from it. > > > > In the previous version of Axis this was achieved with Java2WSDL and > > Wsdl2Java. > > > > Thanks, > > Satya. > > > > Confidentiality Notice > > > > The information contained in this electronic message and any > > attachments to this message are intended for the exclusive use of the > > addressee(s) and may contain confidential or privileged information. > > If you are not the intended recipient, please notify the sender at > > Wipro or [EMAIL PROTECTED] immediately and destroy all copies of > > this message and any attachments. > > > > Confidentiality Notice > The information contained in this electronic > message and any attachments to this message are > intended for the exclusive use of the addressee(s) > and may contain confidential or privileged information. > If you are not the intended recipient, please notify > the sender at Wipro or [EMAIL PROTECTED] immediately > and destroy all copies of this message and any attachments. >
Re: XML Catalogs and Axis WSDL2Java
Ellis, we don't support catalogs yet...please log an enhancement request. A patch would work even better. thanks, dims On 5/9/05, Ellis Pritchard <[EMAIL PROTECTED]> wrote: > Hi, > > Is Axis XML Catalog aware? Specifically, can WSDL2Java use catalogs to > resolve schema URIs? > > I'm developing a document/literal web-service and I need to have the > xs:import/xs:include elements use a Catalog to resolve their URIs. > > (actually I've looked at the code for SymbolTable.java, and the answer > would seem to be no, but am I missing something?) > > Ellis. > > -- Davanum Srinivas - http://webservices.apache.org/~dims/
Re: ArrayOfString problems
Adrian, wrong mailing list...wscompile is not a tool from Axis project. please ask the JBoss folks. -- dims On 5/10/05, Adrian Wilford <[EMAIL PROTECTED]> wrote: > Hi All, > I am hoping someone can help me out here... > > I am using JBOSS 4.02RC1, and I am having a problem with a method using a > String [] as a parameter. I used wscompile to generate the WSDL and mapping > files. > A WSDD with the following odd entry is generated when I try to deploy my app: > > > > My SEI looks like this: > > package webservice; > > import java.rmi.Remote; > import java.rmi.RemoteException; > > public interface MyClass extends Remote > { > public int method1(String param1, > String [] param2) throws > RemoteException; > } > > I also found this entry in the log file > > Cannot find jaxrpc-mapping for type: {http://webservice}ArrayOfstring > 10:57:35,339 WARN [TypeMappingDescription] Class not found > webservice.ArrayOfstring > > of course I have not written an interface or class called ArrayOfstring. > I suspect that the reason it is looking for ArrayOfstring in the package > "webservice", is because the QName: {http://webservice}ArrayOfstring uses > "http://webservice"; as the URI. > I don't know why wscompile creates this, and I don't know how to tell > wscompile not to do so. > > Any help would be much appreciated! > > Thanks, > Adrian > -- Davanum Srinivas - http://webservices.apache.org/~dims/
JCA connectors on Axis?
Hi All I have a c++ web service which sends a soap request to connect to a third party service through a JCA(JSR 112)connector. I want to embed the JCA connector inside the AXIS JAVA .Is this possible? if "yes" how can I do this? Can anybody help me in this? Thanks Kanchana --Lanka Software Foundation (http://www.opensource.lk)
RE: Generating WSDL with axis2-M1
Thanks Srikanth. This clarifies. But to try out my development on Web Services which version of axis would be the best. Regards, Satya -Original Message- From: Srinath Perera [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 10, 2005 4:05 PM To: axis-user@ws.apache.org Subject: Re: Generating WSDL with axis2-M1 Hi Satya; Axis2 M1 is just a Milstone relase and have limited functionality. It does not have the WSDL generation or codegen support built in. Axis2 M2 which is due in month or so, will have WSDL codegn support (limited) but I can not give time line for WSDL generateion support Cheers Srinath On 5/10/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > Hi, > > I am new to Web Services and Axis. I have successfully deployed a web > service on a tomcat server and would like to know how to generate the > WSDL from it. > > In the previous version of Axis this was achieved with Java2WSDL and > Wsdl2Java. > > Thanks, > Satya. > > Confidentiality Notice > > The information contained in this electronic message and any > attachments to this message are intended for the exclusive use of the > addressee(s) and may contain confidential or privileged information. > If you are not the intended recipient, please notify the sender at > Wipro or [EMAIL PROTECTED] immediately and destroy all copies of > this message and any attachments. > Confidentiality Notice The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. If you are not the intended recipient, please notify the sender at Wipro or [EMAIL PROTECTED] immediately and destroy all copies of this message and any attachments.
Re: HashMap vs. Map
Thanks for your fast answer Keith. So, it's not possible to get "clean" generated interfaces? And there is no way to tell Axis to generate interfaces using interfaces and skels/stubs using concrete classes? It can use whatever Map-implementation it likes to use, as long as the generated interfaces use the Map interface. Keith Hatton schrieb: I can answer the first part of your question. It's using HashMap because Axis cannot instantiate an interface or abstract class. When Axis receives your XML it must build concrete object instances, so it must declare a concrete class. Otherwise which implementation of Map should it choose? Hope this helps Keith -Original Message- From: Mike Haller [mailto:[EMAIL PROTECTED] Sent: 10 May 2005 11:00 To: axis-user@ws.apache.org Subject: HashMap vs. Map Hi all, using Axis 1.2 I'm trying to implement my own service: public interface MyService { public org.w3c.dom.Document listObjects(java.util.Map parameters); } Sadly, the generated code (java2wsdl and then wsdl2java) is generating this interface: public interface MyService extends java.rmi.Remote { public org.w3c.dom.Document listObjects(java.util.HashMap in0) throws java.rmi.RemoteException; } Note the difference: Map and HashMap in the method signatures. Why is it using HashMap instead of Map? To solve this, i tried to implement my own GeneratorFactory, but failed to find the location where the mapping is resolved. I also found out that there are elements - but where do I have to add them, since the WSDL file is regenerated on each build. So, I hope someone can tell me where I can tell Axis' wsdl2java to use Map instead of HashMap. Thanks, regards Mike
RE: HashMap vs. Map
I can answer the first part of your question. It's using HashMap because Axis cannot instantiate an interface or abstract class. When Axis receives your XML it must build concrete object instances, so it must declare a concrete class. Otherwise which implementation of Map should it choose? Hope this helps Keith -Original Message- From: Mike Haller [mailto:[EMAIL PROTECTED] Sent: 10 May 2005 11:00 To: axis-user@ws.apache.org Subject: HashMap vs. Map Hi all, using Axis 1.2 I'm trying to implement my own service: public interface MyService { public org.w3c.dom.Document listObjects(java.util.Map parameters); } Sadly, the generated code (java2wsdl and then wsdl2java) is generating this interface: public interface MyService extends java.rmi.Remote { public org.w3c.dom.Document listObjects(java.util.HashMap in0) throws java.rmi.RemoteException; } Note the difference: Map and HashMap in the method signatures. Why is it using HashMap instead of Map? To solve this, i tried to implement my own GeneratorFactory, but failed to find the location where the mapping is resolved. I also found out that there are elements - but where do I have to add them, since the WSDL file is regenerated on each build. So, I hope someone can tell me where I can tell Axis' wsdl2java to use Map instead of HashMap. Thanks, regards Mike
Re: Generating WSDL with axis2-M1
Hi Satya; Axis2 M1 is just a Milstone relase and have limited functionality. It does not have the WSDL generation or codegen support built in. Axis2 M2 which is due in month or so, will have WSDL codegn support (limited) but I can not give time line for WSDL generateion support Cheers Srinath On 5/10/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > Hi, > > I am new to Web Services and Axis. I have successfully deployed a web > service on a tomcat server and would like to know how to generate the > WSDL from it. > > In the previous version of Axis this was achieved with Java2WSDL and > Wsdl2Java. > > Thanks, > Satya. > > Confidentiality Notice > > The information contained in this electronic message and any attachments to > this message are intended > for the exclusive use of the addressee(s) and may contain confidential or > privileged information. If > you are not the intended recipient, please notify the sender at Wipro or > [EMAIL PROTECTED] immediately > and destroy all copies of this message and any attachments. >
fault returning zero-length array
Hello, I am using Axis 1.2 Final, Java 1.4.2_08 on Solaris 9. When I try to return an array of length zero, I get an InvocationTargetException (faultCode: Server.userException). Is there anything one can do about it? Thanks -- -- Fernando D. Mato Mira [EMAIL PROTECTED] Thomson Corporation Switzerland AG
HashMap vs. Map
Hi all, using Axis 1.2 I'm trying to implement my own service: public interface MyService { public org.w3c.dom.Document listObjects(java.util.Map parameters); } Sadly, the generated code (java2wsdl and then wsdl2java) is generating this interface: public interface MyService extends java.rmi.Remote { public org.w3c.dom.Document listObjects(java.util.HashMap in0) throws java.rmi.RemoteException; } Note the difference: Map and HashMap in the method signatures. Why is it using HashMap instead of Map? To solve this, i tried to implement my own GeneratorFactory, but failed to find the location where the mapping is resolved. I also found out that there are elements - but where do I have to add them, since the WSDL file is regenerated on each build. So, I hope someone can tell me where I can tell Axis' wsdl2java to use Map instead of HashMap. Thanks, regards Mike
ArrayOfString problems
Hi All, I am hoping someone can help me out here... I am using JBOSS 4.02RC1, and I am having a problem with a method using a String [] as a parameter. I used wscompile to generate the WSDL and mapping files. A WSDD with the following odd entry is generated when I try to deploy my app: My SEI looks like this: package webservice; import java.rmi.Remote; import java.rmi.RemoteException; public interface MyClass extends Remote { public int method1(String param1, String [] param2) throws RemoteException; } I also found this entry in the log file Cannot find jaxrpc-mapping for type: {http://webservice}ArrayOfstring 10:57:35,339 WARN [TypeMappingDescription] Class not found webservice.ArrayOfstring of course I have not written an interface or class called ArrayOfstring. I suspect that the reason it is looking for ArrayOfstring in the package "webservice", is because the QName: {http://webservice}ArrayOfstring uses "http://webservice"; as the URI. I don't know why wscompile creates this, and I don't know how to tell wscompile not to do so. Any help would be much appreciated! Thanks, Adrian
RE: exposure to web service
Thanks a lot Jay, Now I've another problem,. I'll compile my file to generate the classfile which is used to develop wsdl file using java2wsdl, but axis shows the following error.. The actual import class is org.example.foo.resource, but axis has taken it in the reverse form and gives the following error, WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 'http://resource.foo.example.org'. Namespace prefixes must be set on the Definition object using the addNamespace(...) method.: at com.ibm.wsdl.util.xml.DOMUtils.getPrefix(Unknown Source) at com.ibm.wsdl.util.xml.DOMUtils.getQualifiedValue(Unknown Source) at com.ibm.wsdl.util.xml.DOMUtils.printQualifiedAttribute(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printParts(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printMessages(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source) at com.ibm.wsdl.xml.WSDLWriterImpl.getDocument(Unknown Source) at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:267) Is there any solution to this,. Really need help in this regard.. Thanks.. :-) --- "Jay, Thomas" <[EMAIL PROTECTED]> wrote: > In the Service Impl class, you will have the > operation method. > > In that method, it is typical to call a stateless > session bean that > does your work, this would be a Session Facade type > pattern. > This allows the Web Service to be Scaleable across > a J2EE server. > > Alternatively, you can have the method call a normal > Facade pattern > where you have the detailed implementation details > for the service > but abstract this from the Impl class, you would > still need to > have the Impl class import the package of your > Facade. > > -Original Message- > From: wsdl nerd [mailto:[EMAIL PROTECTED] > Sent: Friday, May 06, 2005 12:05 AM > To: axisgroup > Subject: exposure to web service > > > > > Hi, > I want to expose a function that is in a class file > which inturn imports a set of other classes and > packages. > > I plan to use the java2wsdl and wsdl2java, but > should > i take care about all the import stuff?? > > Hoping for an immediate reply, > Thanks.. > > > Yahoo! India Matrimony: Find your life partner > online > Go to: http://yahoo.shaadi.com/india-matrimony > Yahoo! India Matrimony: Find your life partner online Go to: http://yahoo.shaadi.com/india-matrimony
Axis 1.2 vs 1.2RC3 for UDDI v3 WSDLs
Hi All, I have a problem with Axis 1.2 release, which I didn't have with Axis 1.2RC3. I try to use WSDL2Java tool to generate Java sources from UDDI v3 WSDLs (http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3). The WSDLs are updated to conform to JAXRPC 1.1 spec as described at http://www.oasis-open.org/committees/uddi-spec/doc/tns.htm#jaxrpc11 I get the following error during generation: java.io.IOException: Type {http://www.w3.org/2000/09/xmldsig#}SignatureProperty is referenced but not defined. at org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:663) at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:543) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:516) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:493) at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:360) at java.lang.Thread.run(Thread.java:534) The command line parameters are: -s -o src uddi_v3_service.wsdl All the WSDL's are available locally. Java version is j2sdk1.4.2_07. What's wrong? Best regards, Volodymyr
Generating WSDL with axis2-M1
Hi, I am new to Web Services and Axis. I have successfully deployed a web service on a tomcat server and would like to know how to generate the WSDL from it. In the previous version of Axis this was achieved with Java2WSDL and Wsdl2Java. Thanks, Satya. Confidentiality Notice The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. If you are not the intended recipient, please notify the sender at Wipro or [EMAIL PROTECTED] immediately and destroy all copies of this message and any attachments.
NULL Values
Hello everybody, I had problems with NULL values of parameters. My Client sent always this: 987654321 12345678 but the webservice i called, wants this if the callid is null: 987654321 12345678 So, the tag callid musst not be sent. I've generated the stub with wsdl2java from the wsdl. I'll set this code in the method: _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE); _call.setProperty(org.apache.axis.AxisEngine.PROP_SEND_XSI, Boolean.FALSE); So, please help me, because i don't know the attribute which i had to set or which combination of attributes. Thx alex
RE: adding Axis to your own Webapp
Hello, any answers to my questions below from the community? :-) Thanx alot Merten > -Original Message- > From: Merten Schumann [mailto:[EMAIL PROTECTED] > Sent: Wednesday, March 16, 2005 8:19 AM > To: axis-user@ws.apache.org > Subject: RE: adding Axis to your own Webapp > > I've got just another question in this area: is it allowed by license > and all to distribute such an "web app added to Axis" .war to > customers? > I mean, at the end you distribute your code AND Axis. I guess you have > to add something like "This product includes software developed by the > Apache Software Foundation." in the readme and include the > license file, > but you don't have to offer your code for the web app, or? > > What are the reasons for Axis to not include in the distribution the > activation.jar file from Sun JAF? Maybe some license stuff? > > BTW: I tried my stuff without activation.jar. The happyaxis page tells > me "Axis will not work" because of this file missing. But my > simple web > app works. So, for which scenarios is this .jar needed? > > Thank you >Merten
RE: Problems using the ServletSecurityProvider to do Basic Authentication
With trace logging turned on I get the following: - Enter: SimpleAuthenticationHandler::invoke - provider.getClass : class org.apache.axis.security.servlet.ServletSecurityProvider - org.apache.axis.i18n.resource::handleGetObject(user00) - User: preselect - org.apache.axis.i18n.resource::handleGetObject(user00) - User: preselect - org.apache.axis.i18n.resource::handleGetObject(password00) - Password: preselect - org.apache.axis.i18n.resource::handleGetObject(password00) - Password: preselect - org.apache.axis.i18n.resource::handleGetObject(got00) - Got HttpServletRequest - org.apache.axis.i18n.resource::handleGetObject(noPrincipal00) - No principal! - org.apache.axis.i18n.resource::handleGetObject(cantAuth01) - Enter: SOAPPart ctor(FORM_FAULT) - org.apache.axis.i18n.resource::handleGetObject(setMsgForm) - Setting current message form to: FORM_FAULT (currentMessage is now org.apache.axis.AxisFault) What is the principal, am I stilling missing some configuration. Is this meaningful to anybody. Clement -Original Message- From: Clement Lyons Sent: Tuesday, 10 May 2005 4:44 PM To: axis-user@ws.apache.org Subject: Problems using the ServletSecurityProvider to do Basic Authentication Hi All I'am running an Axis (1.2RC3) Web Service on a Tomcat (4.1.31) I'am having problems getting Basic Authentication working using the ServletSecurityProvider and the SimpleAuthenticationHandler. This is my configuration: In the Axis web.xml: AxisServlet Apache-Axis Servlet org.apache.axis.transport.http.AxisServlet use-servlet-security 1 BASIC Web Services Basic Authentication In the server-config.wsdd In tomcat-users.xml This setup was previously discussed here http://marc.theaimsgroup.com/?l=axis-user&m=104403054218784&w=2 quite a while back. I add the username and password in the client and using TCPMON can see that it is being sent in the HTTP Headers. I've also added logging to the SimpleAuthenticationHandler and can see that the username/password is received correctly and that the security provider used is org.apache.axis.security.servlet.ServletSecurityProvider Should the allowedRoles specified in the server-config.wsdd be a user or role in the tomcat-users.xml. Any pointers or help would be much appreciated. Clement