Hi Neil
On 17/05/13 15:27, NCorbet wrote:
Hello All,

Hopefully I am missing some sort of minor detail, but when I migrated to
cxf-dosgi 1.4 my restful services are no longer available. The log says the
endpoints are published but they no longer work. This happens when launching
from Eclipse and/or running my bundles in Virgo kernal.

As a note, my project is veeerrrrryyyy similiar to the awesome work that
Angelo Zerr did here:
http://angelozerr.wordpress.com/about/eclipse_spring/eclipse_spring_dosgi/

First, the reference in my spring config file:

<osgi:service
interface="org.syntech.ambassador.shared.fuelmaster.services.SiteService">
                <osgi:service-properties>
                        <entry key="service.exported.interfaces" value="*" />
                        <entry key="service.exported.configs" 
value="org.apache.cxf.rs" />
                        <entry key="service.exported.intents" value="HTTP" /> 
                        <entry key="org.apache.cxf.rs.databinding" value="jaxb" 
/>                    
                        
                        <entry key="org.apache.cxf.rs.in.interceptors"
value="org.apache.cxf.interceptor.LoggingInInterceptor" />
                        <entry key="org.apache.cxf.rs.out.interceptors"
value="org.apache.cxf.interceptor.LoggingOutInterceptor" />
                        
                                                
                        
                        <entry key="org.apache.cxf.rs.provider">
                                <array>
                                        <ref bean="jsonProvider" />
                                </array>
                        </entry>
                        
</osgi:service-properties>

When using cxf 1.3, the endpoint is published as:
http://172.16.40.2:9000/org/syntech/ambassador/shared/fuelmaster/services/SiteService

With 1.3 I am using 3 cxf bundles: cxf-dosgi-ri-dsw-cxf,
cxf-dosgi-ri-topology-manager, and cxf-bundle-minimal.

I can run *netstat -a | find "LISTENING"* and see that the port is bound. I
can then hit the service in my browser and I receive a json response.

When using cxf 1.4, the endpoint is published
as:http://172.16.40.2:8181/cxf/org/syntech/ambassador/shared/fuelmaster/services/SiteService

I have noticed the default port has changed and /cxf was added to the path.
I have had to replace the cxf-bundle-minimal with a slew of individual cxf
plugins. All resolve fine and start as well.

"/cxf" is only added if CXF Servlet Transport is used (this prefix can be customized). How exactly you specify the endpoint address ?

When I run *nestat -a | find "LISTENING"* I do NOT see the port bound. I try
to hit the service in the browser and nothing happens. I am not even getting
activity in the eclipse console. Which makes sense as the port is not bound
and listening.

So, all bundles start and the log shows all the same messages regarding
endpoint between the two environments ( with the exception of the different
ports ):

*CXF - 1.4*
*** EndpointDescription: ****
Bundle-SymbolicName  =>
org.syntech.ambassador.server.remoting.exporter.dosgi.jaxrs
Bundle-Version  => 0.0.1.qualifier
endpoint.framework.uuid  => 507f4375-fcbe-0012-12da-eb281b2719d0
endpoint.id  =>
http://172.16.40.2:8181/cxf/org/syntech/ambassador/shared/fuelmaster/services/SiteService
endpoint.package.version.org.syntech.ambassador.shared.fuelmaster.services
=> 0.0.0
endpoint.service.id  => 174
objectClass  =>
[org.syntech.ambassador.shared.fuelmaster.services.SiteService]
org.apache.cxf.rs.address  =>
http://172.16.40.2:8181/cxf/org/syntech/ambassador/shared/fuelmaster/services/SiteService
org.apache.cxf.rs.databinding  => jaxb
org.apache.cxf.rs.in.interceptors  =>
org.apache.cxf.interceptor.LoggingInInterceptor
org.apache.cxf.rs.out.interceptors  =>
org.apache.cxf.interceptor.LoggingOutInterceptor
org.apache.cxf.rs.provider  =>
[org.apache.cxf.jaxrs.provider.json.JSONProvider@73ae0c9d]
org.springframework.osgi.bean.name  => siteService
service.imported  => true
service.imported.configs  => [org.apache.cxf.rs]
service.intents  => [HTTP]
]


*CXF 1.3*
*** EndpointDescription: ****
Bundle-SymbolicName  =>
org.syntech.ambassador.server.remoting.exporter.dosgi.jaxrs
Bundle-Version  => 0.0.1.qualifier
endpoint.framework.uuid  => 50a93d5a-fdbe-0012-1d54-8ce7893b7809
endpoint.id  =>
http://172.16.40.2:9000/org/syntech/ambassador/shared/fuelmaster/services/SiteService
endpoint.package.version.org.syntech.ambassador.shared.fuelmaster.services
=> 0.0.0
endpoint.service.id  => 151
objectClass  => [Ljava.lang.String;@66c88663
org.apache.cxf.rs.address  =>
http://172.16.40.2:9000/org/syntech/ambassador/shared/fuelmaster/services/SiteService
org.apache.cxf.rs.databinding  => jaxb
org.apache.cxf.rs.in.interceptors  =>
org.apache.cxf.interceptor.LoggingInInterceptor
org.apache.cxf.rs.out.interceptors  =>
org.apache.cxf.interceptor.LoggingOutInterceptor
org.apache.cxf.rs.provider  => [Ljava.lang.Object;@76ef024c
org.springframework.osgi.bean.name  => siteService
service.imported  => true
service.imported.configs  => [Ljava.lang.String;@45800894
service.intents  => [Ljava.lang.String;@58b35031
]

Was there something that changed between the two that requires a little
extra configuration to get the same result?

I guess some changes in 1.4 may be affecting the migration, let us know how the endpoint address is set

Thanks, Sergey

Thanks,
Neil



--
View this message in context: 
http://cxf.547215.n5.nabble.com/Migration-from-cxf-dosgi-1-3-to-cxf-dosgi-1-4-broke-my-rest-services-tp5727840.html
Sent from the cxf-user mailing list archive at Nabble.com.



Reply via email to