Hi Kurt,
Thanks again for the responses.
JAX-WS interceptor is seems possible. (I didn't do it with the real
scenario, but a PoC without juddi and my environment).

There can be occasions where people will add services to uddi registry
without going through jax-ws calls. AFAIK we can use java APIs to do so. In
that sense JAX-WS will not work for my case.

So for JPA intercepting I added an Entiry Listener annotation(
@EntityListeners(MyProjectEntityListener.class) to
org.apache.juddi.model.BusinessEntity class in juddi. And I am getting
this. Any idea why this occurs.


 org.apache.openjpa.persistence.PersistenceException:
sun.reflect.annotation.TypeNotPresentExceptionProxy
at
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:218)
at
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
at
org.apache.juddi.config.PersistenceManager.getEntityManager(PersistenceManager.java:45)
at
org.apache.juddi.config.AppConfig.getPersistentConfiguration(AppConfig.java:109)
at org.apache.juddi.config.AppConfig.loadConfiguration(AppConfig.java:95)
at org.apache.juddi.config.AppConfig.<init>(AppConfig.java:62)
at org.apache.juddi.config.AppConfig.getInstance(AppConfig.java:183)
at org.apache.juddi.config.AppConfig.getConfiguration(AppConfig.java:205)
at org.apache.juddi.Registry.start(Registry.java:55)



On Thu, Apr 25, 2013 at 10:43 PM, Alex O'Ree <[email protected]> wrote:

> I concur, a web service handler aka interceptor is your best bet.
>
Hi Alex,
Can you please  explain a bit more detail how to achieve this through web
service handler ?

>
> On Thu, Apr 25, 2013 at 11:36 AM, Subash Chaturanga <[email protected]>
> wrote:
> > Hi Kurt,
> > Thank you for the detailed description of the solution and links .I will
> go
> > through this and will update the thread once done. And hopefully once
> > succeeded will definitely add a blog post too, since this is a use case
> that
> > people might want to achieve.
> >
> >
> > On Thu, Apr 25, 2013 at 8:58 PM, Kurt T Stam <[email protected]>
> wrote:
> >>
> >> OK I think you are much better of using JAX-WS interceptors then. I
> think
> >> the JPA layer is too granular for what your needs are.
> >>
> >> 1. To activate, using CXF, add config to the beans.xml in your
> >> juddiv3.war:
> >>
> >> http://cxf.apache.org/docs/jax-ws-configuration.html
> >>
> >> Here is a example which shows how to provide interceptors, JAX-WS
> >> handlers, and properties:
> >>
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <beans xmlns="http://www.springframework.org/schema/beans";
> >>        xmlns:jaxws="http://cxf.apache.org/jaxws";
> >>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >>        xsi:schemaLocation="
> >>           http://www.springframework.org/schema/beans
> >>           http://www.springframework.org/schema/beans/spring-beans.xsd
> >>           http://cxf.apache.org/jaxws
> >>           http://cxf.apache.org/schemas/jaxws.xsd";>
> >>
> >>   <!-- Interceptors extend e.g.
> >>        org.apache.cxf.phase.AbstractPhaseInterceptor -->
> >>   <bean id="anotherInterceptor" class="..." />
> >>
> >>   <!-- Handlers implement e.g. javax.xml.ws.handler.soap.SOAPHandler -->
> >>   <bean id="jaxwsHandler" class="..." />
> >>
> >>   <!-- The SOAP client bean -->
> >>   <jaxws:client id="helloClient"
> >>                 serviceClass="demo.spring.HelloWorld"
> >>                 address="http://localhost:9002/HelloWorld";>
> >>     <jaxws:inInterceptors>
> >>       <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
> >>       <ref bean="anotherInterceptor"/>
> >>     </jaxws:inInterceptor>
> >>     <jaxws:handlers>
> >>       <ref bean="jaxwsHandler" />
> >>     </jaxws:handlers>
> >>     <jaxws:properties>
> >>       <entry key="mtom-enabled" value="true"/>
> >>     </jaxws:properties>
> >>   </jaxws:client>
> >> </beans>
> >>
> >>
> >>
> >>
> http://svn.apache.org/repos/asf/juddi/tags/juddi-3.1.3/juddi-cxf/src/main/webapp/WEB-INF/beans.xml
> >>
> >> 2. I don't think you'd have to change code but in case you do need to
> set
> >> some annotations, it would be in this class:
> >>
> >>
> >>
> http://svn.apache.org/repos/asf/juddi/tags/juddi-3.1.3/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
> >>
> >> 3. Please let us know how that works out for you. It'd be great if you
> can
> >> add a blog post on our jUDDI Blog about it, and we could add it to our
> >> documentation.
> >>
> >> Cheers,
> >>
> >> --Kurt
> >>
> >>
> >>
> >>
> >> http://cxf.apache.org/docs/jax-ws-configuration.html
> >>
> >>
> >>
> >> On 4/25/13 11:08 AM, Subash Chaturanga wrote:
> >>
> >>
> >>
> >> On Thu, Apr 25, 2013 at 8:20 PM, Kurt T Stam <[email protected]>
> wrote:
> >>>
> >>> On 4/25/13 10:20 AM, Subash Chaturanga wrote:
> >>>>
> >>>> Please note: the tricky part is I need to do both my stuff(inserting
> to
> >>>> uddi registry  and inserting to X ) during the particular juddi call.
> >>>> (relevant JAXWS call for service insertion).
> >>>>
> >>>> ** So consider as when adding a service to uddi, my service insertion
> to
> >>>> X should happen before insertion to uddi registry. Appreciate any one
> >>>> possible solution for me to achieve this.
> >>
> >>
> >> Hi Kurt,
> >>
> >>>
> >>> 1. Before you go down the Interceptor path I guess the question is why
> >>> you can't call into system X before calling into jUDDI from your client
> >>> code.
> >>>
> >> Because it is not actually my client code calling to JUDDI, rather some
> >> system Y . In my case this Y is  an ESB (OSB).  So "Y" calls to my
> system's
> >> JUDDI server and inserts to the service to UDDI registry. In the same
> >> service call I want to call X web service. Hence in that sense, I
> believe my
> >> suggestion of JPA interceptor is correct.
> >>
> >>>
> >>> 2. If you really need to call into system X from a JPA interceptor,
> then
> >>> you should try find an example program demonstrating interceptors to
> learn
> >>> about how an interceptor works. Are you planning on using hibernate or
> >>> openjpa?
> >>
> >>
> >> In fact, I am using juddi 3.x and it uses openjpa. Why JPA interceptor
> >> needed is because juddi insertions takes place through JPA calls .Those
> >> JAXWS services juddi provides has those JPA calls to do insertions to
> uddi
> >> data base. It is a bit hard to find proper example for JPA Interceptors
> in
> >> OpenJPA. That's why I drop a mail to juddi to check whether juddi have a
> >> mechanism to achieve my requirement without going to JPA level.
> >>
> >>
> >>
> >>> Maybe you start here:
> >>>
> http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/listeners.html
> ,
> >>> and look into the @PrePersist annotation ( which I think you can also
> set in
> >>> the persistence.xml)
> >>> Once you got that to work we can help you with which classes you would
> >>> want to add interceptor to.
> >>>
> >>> 3. If you make a good case for why you need this interception business,
> >>> then we might also be able to add hooks right into the service layer;
> i.e.
> >>> you'd be able to configure an endpoint and receive a call with the
> >>> serialized XML on every SaveService call.
> >>>
> >>> --Kurt
> >>>
> >>>
> >>
> >>
> >>
> >> --
> >> Subash Chaturanga
> >> Department of Computer Science & Engineering
> >> University of Moratuwa
> >> Sri Lanka
> >>
> >> Blog -  http://subashsdm.blogspot.com/
> >> Twitter - http://twitter.com/subash89
> >>
> >>
> >>
> >
> >
> >
> > --
> > Subash Chaturanga
> > Department of Computer Science & Engineering
> > University of Moratuwa
> > Sri Lanka
> >
> > Blog -  http://subashsdm.blogspot.com/
> > Twitter - http://twitter.com/subash89
> >
>



-- 
Subash Chaturanga
Department of Computer Science & Engineering
University of Moratuwa
Sri Lanka

Blog -  http://subashsdm.blogspot.com/
Twitter - http://twitter.com/subash89

Reply via email to