You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by James Gough <wh...@gmail.com> on 2006/05/10 02:51:24 UTC
WSE 817 error - bad wsdl or just newbie stupidity?
I am very new to Axis and web services in general. I am writing a
client for a .NET-based web service using the Axis WSDL2Java generator
to create my client. Once I compiled the resulting code and set up a
test program for a very small part of the client, I ran it and got this:
Destination Unreachable --> WSE817: The <To> header must match the
Actor attribute on this receiver. The <To> header contained
"https://ws.somedomain.com/webservices/engine.asmx" whereas
the Actor attribute was "urn:AWordICannotFindAnywhereInMyCode".
So I looked into the wsdl file and the location attribute of the soap
tag is "https://ws.somedomain.com/webservices/engine.asmx", but the
soapAction attribute of the operation I want to use is
"http://somedomain.com/MinorAction". Like I said, I am new to this, and
I have access to the guys who set up this wsdl, but prefer to have a
better Idea of what my problem is before I ask for help from them. I
should add that they have a .NET client for this that does work (my
application is in Java so I'd prefer to use Axis).
Anybody?
Re: WSE 817 error - bad wsdl or just newbie stupidity?
Posted by James Gough <wh...@gmail.com>.
Thanks, Anne.
I'm wondering if there is a way on the client side to signal to the
server that you want it to use the Action in the body of the SOAP
message and ignore the SOAP Actor in the headers?
Jim
Anne Thomas Manes wrote:
Wed, 10 May 2006 06:06:02 -0700
So you should tell the folks that built the service that they should
define a more reasonable Actor attribute. To make it easier for
consumers, the Actor attribute should be the same as the service
endpoint URL.
The wsa:To value specifies the "destination" property, which is a URI
that represents the Actor to whom the request is targeted -- not the
physical location of the service. (The physical location may change,
after all.)
Based on your error message, you should specify the destination property
as "urn:AWordICannotFindAnywhereInMyCode".
Anne
Re: WSE 817 error - bad wsdl or just newbie stupidity?
Posted by James Gough <wh...@gmail.com>.
I was able to solve this by adding in a SOAP Header for the "To:" that
they were looking for (I was lucky enough to have a working .NET
example, so basically I just mimicked the xml produced by that
application as best I could). Of course now I get a 400 error, but
there's alot more to send them so I am unstuck by this error anyway.
Code to add the "To:" header:
org.apache.axis.message.SOAPHeaderElement element = new
org.apache.axis.message.SOAPHeaderElement("http://schemas.xmlsoap.org/ws/2004/03/addressing",
"To");
element.setPrefix("wsa");
element.setAttribute("wsu:Id", "Id-" + idGenerator.nextUUID());
element.setObjectValue("urn:AWordICannotFindAnywhereInMyCode");
_call.addHeader(element);
Jim
Anne Thomas Manes wrote:
> So you should tell the folks that built the service that they should
> define a more reasonable Actor attribute. To make it easier for
> consumers, the Actor attribute should be the same as the service
> endpoint URL.
>
> The wsa:To value specifies the "destination" property, which is a URI
> that represents the Actor to whom the request is targeted -- not the
> physical location of the service. (The physical location may change,
> after all.)
>
> Based on your error message, you should specify the destination
> property as "urn:AWordICannotFindAnywhereInMyCode".
>
> Anne
Re: WSE 817 error - bad wsdl or just newbie stupidity?
Posted by Anne Thomas Manes <at...@gmail.com>.
So you should tell the folks that built the service that they should define
a more reasonable Actor attribute. To make it easier for consumers, the
Actor attribute should be the same as the service endpoint URL.
The wsa:To value specifies the "destination" property, which is a URI that
represents the Actor to whom the request is targeted -- not the physical
location of the service. (The physical location may change, after all.)
Based on your error message, you should specify the destination property as
"urn:AWordICannotFindAnywhereInMyCode".
Anne
On 5/9/06, James Gough <wh...@gmail.com> wrote:
>
> I am very new to Axis and web services in general. I am writing a
> client for a .NET-based web service using the Axis WSDL2Java generator
> to create my client. Once I compiled the resulting code and set up a
> test program for a very small part of the client, I ran it and got this:
>
> Destination Unreachable --> WSE817: The <To> header must match the
> Actor attribute on this receiver. The <To> header contained
> "https://ws.somedomain.com/webservices/engine.asmx" whereas
> the Actor attribute was "urn:AWordICannotFindAnywhereInMyCode".
>
> So I looked into the wsdl file and the location attribute of the soap
> tag is "https://ws.somedomain.com/webservices/engine.asmx", but the
> soapAction attribute of the operation I want to use is
> "http://somedomain.com/MinorAction". Like I said, I am new to this, and
> I have access to the guys who set up this wsdl, but prefer to have a
> better Idea of what my problem is before I ask for help from them. I
> should add that they have a .NET client for this that does work (my
> application is in Java so I'd prefer to use Axis).
>
> Anybody?
>
>
[Axis 1.4] WSDL2Java - is there a way to generate code that transmits
WSE 2.0 requests?
Posted by James Gough <wh...@gmail.com>.
I'm having issues trying to connect a client generated by Axis's
WSDL2Java to an existing .Net-based Web Service. Some of my research
indicates that this may be due to the fact that I am sending WSE 3.0
requests to a WSE 2.0 service. Is there a way to have Axis 1.4 create
code that sends 2.0 requests? And if not, what version should I be
using to generate 2.0 requests?