cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot inject Web Service Proxy in EJB by using @WebServiceRef

markus_muenkel
Associate
Associate
0 Kudos

Hi,

I have created a Web Service Proxy project in NWDI and deployed it to a NW 7.1 AS Java. As a result, it is listed in NW Admin "SOA Management" -> "Web Services Administration" under "Proxy Definitions" as expected.

There the details in tab "General" show:

State: With Logical Ports

Namespace: http://sap.com/xi/APPL/SE/Global

WSDL Porttype Name: OutboundDeliveryByIDQueryResponse_In

Internal Name: 1daacd1d:11873e1023a:-7fff_OutboundDeliveryByIDQueryResponse_In

Now I would like to use this proxy in a session EJB. This EJB is contained in a NWDI EJB project, which is referencing the Web Service Proxy project via public part. My approach was to use injection via the @WebServiceRef annotation in the EJB. To this end, I guess I need to specify the JNDI name of the web service proxy. It is a similar approach as described in the paper [Service Registry for ESWorkplace |https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/501668ab-976e-2a10-91b6-c1020e8c54f2] .

Question: if this approach is correct, how can I find out what's the JNDI name to use in the "name" property of the @WebServiceRef annotation?

I also tried

@WebServiceRef(name="OutboundDeliveryByIDQueryResponse_In")

OutboundDeliveryByIDQueryResponse_InService obj;

but the factory could not inject the resource at runtime.

Thanks a lot for your help!

Regards,

Markus

View Entire Topic
markus_muenkel
Associate
Associate
0 Kudos

Hi Dimitar,

it is not possible to specify the class as type of the object that is to be injected. The type OutboundDeliveryByIDQueryResponse_InService is in fact an interface, not a service class. Note that the deployable WS Proxy exposes interfaces only for the design-time.

I would expect injection to work nevertheless, in analogy to @EJB injection:

@EJB

MyEjbLocalInterface myEjb;

Here the container injects an EJB object in myEjb even though the type MyEjbLocalInterface is an interface.

Best regards,

Markus