1. How do you add services without going through the webservices API,

2. Sorry I don't know why the listener is causing this error. My advice would 
be to start simple with 1 class and learn about the listener.

--Kurt

On Apr 28, 2013, at 12:56, Subash Chaturanga <[email protected]> wrote:

> 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