Kevin, <blatant-product-plug> ColdFusion MX has much cooler support for web services, the <CFINVOKE> tag.
You can provide a WSDL file and CFMX will run the Axis WSDL2Java under the covers, compile it, convert all of your ColdFusion structures and arguments to the right Java types, invoke the web service using the generated proxies, then convert the output back in to CFML variables. (it only does the generation the first time, so its not as slow as it sounds!) Makes it trivial to use a web service. You can also publish web services written in CFML (called ColdFusion Components or CFC's) with a single Admin step. Download the FREE developer edition at http://www.macromedia.com/sorfware/coldfusion. </blatant-product-plug> One quick warning, both JRun and ColdFusion MX embed Axis Beta 1 currently, although we have aggressive plans to update that to Axis 1.0 (when released) -- Tom Jordahl Macromedia Server Development -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 2:09 PM To: [EMAIL PROTECTED] Subject: RE: Interesting TAG -> Code Questions Tom - Will this tag lib make its way into Cold Fusion? Tom Jordahl <[EMAIL PROTECTED]> on 06/27/2002 02:22:19 PM Please respond to [EMAIL PROTECTED] To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> cc: (bcc: Kevin Bedell/Systems/USHO/SunLife) Subject: RE: Interesting TAG -> Code Questions Hi Mick, First, let me just point out that the webservice tag you are using is a feature of JRun, not part of Axis. I am glad you are having success with the tag, since I wrote it. Anyway, to answer your Axis coding questions 1. You need to register a type mapping. You need the following call: call.registerTypeMapping( com.themindelectric.www.LocationInfo.class, new QName( "http://www.themindelectric.com/package/com.esri.is.services.common/" "LocationInfo"), org.apache.axis.encoding.ser.BeanSerializerFactory.class, org.apache.axis.encoding.ser.BeanDeserializerFactory.class); 2. You need to set a SoapAction in the tag (use soapaction="") or in the Call: call.setUseSOAPAction(true); call.setSOAPActionURI("action here"); For .NET, you will probably need to set the style= attribute when using the tag to "wrapped" and the use= attribute to "literal". A really good way to figure out what Axis client code is needed is to run the WSDL2Java tool on the WSDL for the service you are trying to access, then examining the Stub code that is generated. -- Tom Jordahl Macromedia -----Original Message----- From: Mick Robinson [mailto:[EMAIL PROTECTED]] Sent: Thursday, June 27, 2002 2:05 PM To: [EMAIL PROTECTED] Subject: Interesting TAG -> Code Questions Hello, I'm Mick, I'm new to the list, and it's a pleasure meeting everyone, I see big things happening between all of us! :) Ok lets get to the point. I got 2 things. First, I've been very successful consuming web services in JSP with the use of the webservice taglib. What I need to do now is consume using straight code. This is what I got so far: ------------------------ If this is the taglib: ------------------------ <web:invoke url="http://www.geographynetwork.com/services/v1/PlaceFinder" namespace="http://www.geographynetwork.com/PlaceFinder" operation="findPlace" resultType="LocationInfo" result="myResult" scope="page"> <web:param name="arg0" value="Paris"/> </web:invoke> <% locationInfo = (LocationInfo)pageContext.getAttribute("myResult", pageContext.PAGE_SCOPE); %> ------------------------ Then this is the code I've come up with so far, please let me know if I'm missing anything: ------------------------ Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL("http://www.geographynetwork.com/services/v1/PlaceFinder")) ; call.setOperationName(new QName("http://www.geographynetwork.com/PlaceFinder","findPlace")); locationInfo = (LocationInfo) call.invoke( new Object[] { "Paris" } ); ------------------------ Now that code doesn't work, because I'm missing a key ingredient, my MAIN question, is what is the code equivalent of the following tag (the key ingredient:)): ------------------------ <web:beanmapping class="com.themindelectric.www.LocationInfo" namespace="http://www.themindelectric.com/package/com.esri.is.services.c ommon/" type="LocationInfo"/> ------------------------ I hope someone can help me out with that, or point in the right direction, I couldn't find anything about that for code. My Second thing is, I have never been able to consume a service written in .NET, no matter what the service, or what it returns, I always get a "500 Server did not recognize the value of HTTP Header SOAPAction:" error? Anyone know what I got to do to consume to a .NET web service? Thanks in advance! Mick _________________________ Mick Robinson MapCloud Services Inc 1200-1185 West Georgia St Vancouver B.C. 604-895-7611 (P) 604-682-3497 (F)
