There is no stack trace in the log files, as far as I can see.
This the soap message returned from the factory when a client sends a request without any header:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Client</faultcode>
         <faultstring>A WS-Addressing Action SOAP header element is required by this endpoint.</faultstring>
         <detail/>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>

I don't know the details of the implementation, but it seems to me that this is a Apache WSRF generated fault.
If I understood the log4java library better I could probably find out more. If you need to know more, I'll get some more details.

- Christian

On 5/2/06, Campana Jr., Salvatore J <[EMAIL PROTECTED]> wrote:
Do you get a stack trace?  I want to determine if it is Axis expecting the header or if it is a certain class of ours which is...
 
thx!


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Jan Christian Bryne
Sent: Tuesday, May 02, 2006 2:33 AM

To: wsrf-user@ws.apache.org
Subject: Re: Question about factory pattern

Yes, the factory service is a singleton. Here is it's <bean> element in wsrf-config.xml:

<bean abstract="false" autowire="default" class="no.uib.bccs.ncbiBlastFactoryWsdl.NCBIBlastFactoryHome" dependency-check="default" id="NCBI<bean abstract="false" autowire="default" class="no.uib.bccs.ncbiBlastFactoryWsdl.NCBIBlastFactoryHome" dependency-check="default" id="NCBIBlastFactoryHome" init-method="init" lazy-init="default" singleton="true">
    <property name="portComponentName">
      <value>NCBI_BlastFactory</value>
    </property>
    <property name="serviceClass">
      <value>no.uib.bccs.ncbiBlastFactoryWsdl.NCBIBlastFactoryService</value>
    </property>
    <property name="resourceClass">
      <value>no.uib.bccs.ncbiBlastFactoryWsdl.NCBIBlastFactoryResource</value>
    </property>
 </bean>

So making the factory service to not expect a resource identifier was easy. But how can I make it to not expect a header element at all?

- Christian



On 5/1/06, Campana Jr., Salvatore J <[EMAIL PROTECTED]> wrote:
Hmmm...

So wait, you've implemented a Factory Service...You said you did it as a
singleton...

Did you configure that in the config file, to make it an actual
singleton service?


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto: [EMAIL PROTECTED]] On Behalf Of Jan Christian Bryne
Sent: Monday, May 01, 2006 2:28 PM
To: wsrf-user@ws.apache.org
Subject: Re: Question about factory pattern

Hi,

Thanks for you reply.
My job is to make a web service interface to a bioinformatic tool
(blast). I have looked at the interop example in CVS and made a
interface following the factory/instance pattern.

Everything works fine, and I'm really grateful for the Apache WSRF
implementation. However, I can not send requests to the factory service
without a header element. When I remove it, I get an error message. It
doesn't seem to matter what is inside the header, as long as it is
present!

The factory service is in fact a singleton service, and so does not need
the header. But the Apache WSRF still requires it to be there. To me
this seems like unnecessary complexity, and the service would be better
without.

So, is there any way to implement a singleton factory service that does
not need the header element using Apache WSRF, or have I missed a very
important point?

Friendly regards,
Jan Christian Bryne


On 5/1/06, Campana Jr., Salvatore J < [EMAIL PROTECTED]> wrote:
>
> The required header is actually for the resource instance itself...The

> only way around this is to make you resource a singleton.....
>
> We could define some arbitrary attribute in the wsdl file to denote
> this, however the spec does not outline this...
>
>  ________________________________
>  From: [EMAIL PROTECTED]
> [mailto: [EMAIL PROTECTED]]
> On Behalf Of Jan Christian Bryne
> Sent: Sunday, April 30, 2006 3:14 PM
> To: wsrf-user@ws.apache.org
> Subject: Question about factory pattern
>
>
>
>
>
> Hi,
>
> This question have previously been asked but I didn't get a reply, so
> I try again.
>
> When communicating with a factory/instance pair of WSRF Web Services,
> a client first creates a new resource using the factory service. The
> EPR returned to the client is used to identify the resource, which can

> be reached using the instance service. This requires that the client
> place a header element in the request soap envelope.
>
> The factory service is a singleton service, so it doesn't need a
> resource identifier in the header element. The problem is that it
> seems to me that the factory service still needs a header element to
be present.
>
> When using libraries used for vanilla web services, this makes it
> harder to use the factory service. The compulsory header element is
> not described in the WSDL file for the factory service (or can this be

> done?), so the client has no way to determine that the factory need a
> header element. This makes it necessary to implent a client on a lower

> level, making sure that the header is there.
>
> So, are there any way to either disable the requirement of a header
> element for the factor service, or alternatively, is there a way to
> describe in the wsdl file for the factory that a header element is
necessary?
>
> Friendly regards,
>
> Jan Christian Bryne

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to