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)







Reply via email to