Unable to Specify an Operation in a WS

View: New views
4 Messages — Rating Filter:   Alert me  

Unable to Specify an Operation in a WS

by jsexton0 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi -

I'm working with a web service I'd like to call from Java code and from a BPEL.  The WS is implemented as an SA and an SE deployed on the same Glassfish instance I want to call it from.  A found that Netbeans generated tests, from an SA project, could not call the server because they seemed to fail to specify the operation (SOAPAction) in the HTTP header.

I went to some stand alone Java code, and it works fine, when I include like this:

            MimeHeaders header = mySoapRequest.getMimeHeaders();
            header.addHeader("SOAPAction", mySoapOperation);
            Object res = dispatch.invoke(mySoapRequest);

The operation is added to the HTTP header, and everything is fine.  (Java 1.6 on Windows)
Then I moved over to a Ubunti 8.10 box with Java 1.6.0.10.  On this box, not only am I unable to use the service from a BPEL, but no matter what I do, I can't seem to get the right service into the HTTP header from Java code either.  No matter what I do, the HTTP request header includes this:

SOAPAction = ""

Literally, two double quotes.  I can add new, bogus, header elements just fine, like so:

            MimeHeaders header = mySoapRequest.getMimeHeaders();
            header.addHeader("SomeEntry", "NothingSpecial");

But I can not override SOAPAction on the linux setup.  I've tried removing the headers, putting nonsense in (that should cause an error but doesn't), and all sorts of long-hand construction of the message, but the SOAPAction remains "" no matter what, on linux.  Even attempts to remove the SOAPAction item result in the same HTTP mesage.

I can call the operation fine using the SoapUI tool on either Ubuntu or Windows, and I checked the HTTP post on these calls, and they are correct.

Something in the dispatch object must be setting the SOAPAction.  I ran across this:

http://forums.java.net/jive/thread.jspa?threadID=637

It's not directly related, but it sure seems similar.  Even if there is a work around in Java, I'll need to call these operations from a BPEL also.  Any ideas?

Thank you


Re: Unable to Specify an Operation in a WS

by Murali Pottlapelli :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some on from http-bc team might be able to help you better. Posting it
to users@...


Regards
Murali

jsexton0 wrote:

> Hi -
>
> I'm working with a web service I'd like to call from Java code and from a
> BPEL.  The WS is implemented as an SA and an SE deployed on the same
> Glassfish instance I want to call it from.  A found that Netbeans generated
> tests, from an SA project, could not call the server because they seemed to
> fail to specify the operation (SOAPAction) in the HTTP header.
>
> I went to some stand alone Java code, and it works fine, when I include like
> this:
>
>             MimeHeaders header = mySoapRequest.getMimeHeaders();
>             header.addHeader("SOAPAction", mySoapOperation);
>             Object res = dispatch.invoke(mySoapRequest);
>
> The operation is added to the HTTP header, and everything is fine.  (Java
> 1.6 on Windows)
> Then I moved over to a Ubunti 8.10 box with Java 1.6.0.10.  On this box, not
> only am I unable to use the service from a BPEL, but no matter what I do, I
> can't seem to get the right service into the HTTP header from Java code
> either.  No matter what I do, the HTTP request header includes this:
>
> SOAPAction = ""
>
> Literally, two double quotes.  I can add new, bogus, header elements just
> fine, like so:
>
>             MimeHeaders header = mySoapRequest.getMimeHeaders();
>             header.addHeader("SomeEntry", "NothingSpecial");
>
> But I can not override SOAPAction on the linux setup.  I've tried removing
> the headers, putting nonsense in (that should cause an error but doesn't),
> and all sorts of long-hand construction of the message, but the SOAPAction
> remains "" no matter what, on linux.  Even attempts to remove the SOAPAction
> item result in the same HTTP mesage.
>
> I can call the operation fine using the SoapUI tool on either Ubuntu or
> Windows, and I checked the HTTP post on these calls, and they are correct.
>
> Something in the dispatch object must be setting the SOAPAction.  I ran
> across this:
>
> http://forums.java.net/jive/thread.jspa?threadID=637
>
> It's not directly related, but it sure seems similar.  Even if there is a
> work around in Java, I'll need to call these operations from a BPEL also.
> Any ideas?
>
> Thank you
>
>
>  

Parent Message unknown Re: Unable to Specify an Operation in a WS

by Murali Pottlapelli :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Sherry,
Is it possible to control using NMProperty?

If I understand right, user is saying it is not working linux environment.

Regards
Murali

Sherry Weng wrote:

> Looks like SOAPAction may be hardcoded somewhere, but you would
> probably get better answers posting the question on the Metro user
> forum (users@...).
> As to adding the SOAPAction header from BPEL calls, HTTP BC will set
> BindingProvider.SOAPACTION_URI_PROPERTY based on the soapAction field
> (if present) in the WSDL, default is "".
>
> HTH
> --Sherry
>
> Murali Pottlapelli wrote:
>> Some on from http-bc team might be able to help you better. Posting
>> it to users@...
>>
>>
>> Regards
>> Murali
>>
>> jsexton0 wrote:
>>> Hi -
>>>
>>> I'm working with a web service I'd like to call from Java code and
>>> from a
>>> BPEL.  The WS is implemented as an SA and an SE deployed on the same
>>> Glassfish instance I want to call it from.  A found that Netbeans
>>> generated
>>> tests, from an SA project, could not call the server because they
>>> seemed to
>>> fail to specify the operation (SOAPAction) in the HTTP header.
>>>
>>> I went to some stand alone Java code, and it works fine, when I
>>> include like
>>> this:
>>>
>>>             MimeHeaders header = mySoapRequest.getMimeHeaders();
>>>             header.addHeader("SOAPAction", mySoapOperation);
>>>             Object res = dispatch.invoke(mySoapRequest);
>>>
>>> The operation is added to the HTTP header, and everything is fine.  
>>> (Java
>>> 1.6 on Windows)
>>> Then I moved over to a Ubunti 8.10 box with Java 1.6.0.10.  On this
>>> box, not
>>> only am I unable to use the service from a BPEL, but no matter what
>>> I do, I
>>> can't seem to get the right service into the HTTP header from Java code
>>> either.  No matter what I do, the HTTP request header includes this:
>>>
>>> SOAPAction = ""
>>>
>>> Literally, two double quotes.  I can add new, bogus, header elements
>>> just
>>> fine, like so:
>>>
>>>             MimeHeaders header = mySoapRequest.getMimeHeaders();
>>>             header.addHeader("SomeEntry", "NothingSpecial");
>>>
>>> But I can not override SOAPAction on the linux setup.  I've tried
>>> removing
>>> the headers, putting nonsense in (that should cause an error but
>>> doesn't),
>>> and all sorts of long-hand construction of the message, but the
>>> SOAPAction
>>> remains "" no matter what, on linux.  Even attempts to remove the
>>> SOAPAction
>>> item result in the same HTTP mesage.
>>>
>>> I can call the operation fine using the SoapUI tool on either Ubuntu or
>>> Windows, and I checked the HTTP post on these calls, and they are
>>> correct.
>>>
>>> Something in the dispatch object must be setting the SOAPAction.  I ran
>>> across this:
>>>
>>> http://forums.java.net/jive/thread.jspa?threadID=637
>>>
>>> It's not directly related, but it sure seems similar.  Even if there
>>> is a
>>> work around in Java, I'll need to call these operations from a BPEL
>>> also. Any ideas?
>>>
>>> Thank you
>>>
>>>
>>>  
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@...
>> For additional commands, e-mail: dev-help@...
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@...
> For additional commands, e-mail: users-help@...
>

Re: Unable to Specify an Operation in a WS

by Gerh17 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have the same problem (WSDL with soapAction, but HTTP-BC producing HTTP header without it). Is there any solution or workaround?

Version: Sun GlassFish Enterprise Server v2.1 (9.1.1) (build b60e-fcs)
WSDL: http://service.ecocoma.com/shipping/dhl.asmx?WSDL  (read http://service.ecocoma.com/shipping_webservice.aspx  for more info)


Regards
Gerhard

Murali Pottlapelli wrote:
Some on from http-bc team might be able to help you better. Posting it
to users@open-esb.dev.java.net


Regards
Murali

jsexton0 wrote:
> Hi -
>
> I'm working with a web service I'd like to call from Java code and from a
> BPEL.  The WS is implemented as an SA and an SE deployed on the same
> Glassfish instance I want to call it from.  A found that Netbeans generated
> tests, from an SA project, could not call the server because they seemed to
> fail to specify the operation (SOAPAction) in the HTTP header.
>
> I went to some stand alone Java code, and it works fine, when I include like
> this:
>
>             MimeHeaders header = mySoapRequest.getMimeHeaders();
>             header.addHeader("SOAPAction", mySoapOperation);
>             Object res = dispatch.invoke(mySoapRequest);
>
> The operation is added to the HTTP header, and everything is fine.  (Java
> 1.6 on Windows)
> Then I moved over to a Ubunti 8.10 box with Java 1.6.0.10.  On this box, not
> only am I unable to use the service from a BPEL, but no matter what I do, I
> can't seem to get the right service into the HTTP header from Java code
> either.  No matter what I do, the HTTP request header includes this:
>
> SOAPAction = ""
>
> Literally, two double quotes.  I can add new, bogus, header elements just
> fine, like so:
>
>             MimeHeaders header = mySoapRequest.getMimeHeaders();
>             header.addHeader("SomeEntry", "NothingSpecial");
>
> But I can not override SOAPAction on the linux setup.  I've tried removing
> the headers, putting nonsense in (that should cause an error but doesn't),
> and all sorts of long-hand construction of the message, but the SOAPAction
> remains "" no matter what, on linux.  Even attempts to remove the SOAPAction
> item result in the same HTTP mesage.
>
> I can call the operation fine using the SoapUI tool on either Ubuntu or
> Windows, and I checked the HTTP post on these calls, and they are correct.
>
> Something in the dispatch object must be setting the SOAPAction.  I ran
> across this:
>
> http://forums.java.net/jive/thread.jspa?threadID=637
>
> It's not directly related, but it sure seems similar.  Even if there is a
> work around in Java, I'll need to call these operations from a BPEL also.
> Any ideas?
>
> Thank you
>
>
>