Hi Glen,

FYI, the port is specified in http feature configuration like

<feature name="http" description="Implementation of the OSGi HTTP service" 
version="2.3.1" resolver="(obr)">
        <configfile 
finalname="/etc/jetty.xml">mvn:org.apache.karaf/apache-karaf/2.3.1/xml/jettyconfig</configfile>
        <config name="org.ops4j.pax.web">
            org.osgi.service.http.port=8181
            javax.servlet.context.tempdir=${karaf.data}/pax-web-jsp
            org.ops4j.pax.web.config.file=${karaf.base}/etc/jetty.xml
        </config>
        <feature version="[7.0,8.0)">jetty</feature>
        <bundle 
start-level="30">mvn:org.ops4j.pax.web/pax-web-api/1.1.12</bundle>
        <bundle 
start-level="30">mvn:org.ops4j.pax.web/pax-web-spi/1.1.12</bundle>
        <bundle 
start-level="30">mvn:org.ops4j.pax.web/pax-web-runtime/1.1.12</bundle>
        <bundle 
start-level="30">mvn:org.ops4j.pax.web/pax-web-jetty/1.1.12</bundle>
    </feature>

in karaf 
system/org/apache/karaf/assemblies/features/standard/2.3.1/standard-2.3.1-features.xml
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: @Freeman小屋

On 2013-4-9, at 上午4:31, Glen Mazza wrote:

> On 04/08/2013 02:41 PM, Daniel Kulp wrote:
>> On Apr 8, 2013, at 2:19 PM, Glen Mazza <[email protected]> wrote:
>> 
>>> OK, I removed the <Require-Bundle/> tag and the web service provider still 
>>> works -- thanks.  I've incurred a couple more issues, however, I don't know 
>>> if these are CXF bugs (I'll type up a JIRA if they are) or just "features":
>>> 
>>> 1.) For what I thought, if I *don't* define a etc/org.ops4j.pax.web.cfg 
>>> file indicating my desired HTTP port the web service will default to port 
>>> 8080.  However, in Karaf 2.3.2 (at least) I'm not able to get the WSDL to 
>>> appear unless I explicitly create that file with a defined 
>>> org.osgi.service.http.port value (whether 8040 or 8080 or whatever, the web 
>>> service will use whatever port I define). Question:  Is this a CXF bug, the 
>>> need to have explicitly create this configuration file even if I just want 
>>> the default of 8080? (Or maybe Karaf is using another default value?  I'm 
>>> not sure, the Karaf log file just tells me that Pax web has started with no 
>>> port indication if I don't define that config file.)
>> Honestly, I have no idea.  :-(     It might be 8181, but I'm not sure.
>> 
>> If you're on Linux, try doing a "netstat -anp"  and see what ports the 
>> "java" processes are holding.
> 
> Yes, it's 8181, and now that I know the port I confirmed the web service 
> works without the .cfg file.  I put in a JIRA item for Pax Web to always log 
> the port being used to eliminate the guesswork in trying to figure out the 
> port: https://ops4j1.jira.com/browse/PAXWEB-556
> 
>> 
>> 
>>> 2.) My process to install the web service is as follows (works like a 
>>> charm):
>>> 
>>> karaf@root> features:addurl 
>>> mvn:org.apache.cxf.karaf/apache-cxf/2.7.4/xml/features
>>> karaf@root> features:install cxf
>>> karaf@root> install 
>>> mvn:org.gmazza.blog-samples.web-service-tutorial/web-service-tutorial-service/1.0-SNAPSHOT
>>> Bundle ID: 159
>>> karaf@root> start 159
>>> karaf@root> list
>>> START LEVEL 100 , List Threshold: 50
>>>   ID   State         Blueprint      Spring    Level  Name
>>> [ 135] [Active     ] [            ] [       ] [   80] Apache MINA Core 
>>> (2.0.5)
>>> [ 158] [Active     ] [            ] [       ] [   50] Apache CXF 
>>> Compatibility Bundle Jar (2.7.4)
>>> [ 159] [Active     ] [Created     ] [       ] [   80] -- Web Service 
>>> Provider (1.0.0.SNAPSHOT)
>>> 
>>> However, for a simple SOAP web service with no security I'm guessing I 
>>> shouldn't have to install the whole cxf feature (which includes everything) 
>>> but just cxf-jaxws, as defined in the CXF features file: 
>>> http://svn.apache.org/viewvc/cxf/trunk/osgi/karaf/features/src/main/resources/features.xml?view=markup
>>> 
>>> But if I do that I get this error:
>>> karaf@root> features:addurl 
>>> mvn:org.apache.cxf.karaf/apache-cxf/2.7.4/xml/features
>>> karaf@root> features:install cxf-jaxws
>>> karaf@root> install 
>>> mvn:org.gmazza.blog-samples.web-service-tutorial/web-service-tutorial-service/1.0-SNAPSHOT
>>> Bundle ID: 104
>>> karaf@root> start 104
>>> Error executing command: Error starting bundles:
>>>    Unable to start bundle 104: Unresolved constraint in bundle 
>>> web-service-tutorial-service [104]: Unable to resolve 104.0: missing 
>>> requirement [104.0] osgi.wiring.bundle; 
>>> (osgi.wiring.bundle=org.apache.cxf.bundle)
>>> karaf@root> list
>>> START LEVEL 100 , List Threshold: 50
>>>   ID   State         Blueprint      Level  Name
>>> [ 104] [Installed  ] [            ] [   80] -- Web Service Provider 
>>> (1.0.0.SNAPSHOT)
>>> 
>>> Question: Are we always supposed to install the cxf feature regardless of 
>>> what CXF service we're using (whether REST or SOAP), or is there a bundle 
>>> missing in the cxf-jaxws feature definition preventing me from using just 
>>> that for my SOAP service?
>> It sounds like the "Require-Bundle" header is still there.   If you do a 
>> "headers 104", what is printed?
>> 
> 
> Yes, Require-Bundle was still there -- I had removed it from the client but I 
> forgot the service.  Both now work with the cxf-jaxws feature alone.
> 
> Thanks!
> Glen
> 
> 
>> Dan
>> 
>> 
>> 
>> 
>>> Thanks,
>>> Glen
>>> 
>>> 
>>> On 04/08/2013 11:35 AM, Daniel Kulp wrote:
>>>> On Apr 8, 2013, at 11:26 AM, Glen Mazza <[email protected]> wrote:
>>>> 
>>>>> Hi, my WSDL-first tutorial provides an option to host the web service 
>>>>> provider on an OSGi container ( 
>>>>> http://www.jroller.com/gmazza/entry/web_service_tutorial#WFstep3-service).
>>>>>  My maven-bundle-plugin configuration in the service's pom.xml (which 
>>>>> works fine) is as follows:
>>>>> 
>>>>> <plugin>
>>>>>  <groupId>org.apache.felix</groupId>
>>>>>  <artifactId>maven-bundle-plugin</artifactId>
>>>>>  <configuration>
>>>>>     <instructions>
>>>>> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
>>>>> <Require-Bundle>org.apache.cxf.bundle,org.springframework.beans</Require-Bundle>
>>>>>        <Export-Package>service</Export-Package>
>>>>>     </instructions>
>>>>>  </configuration>
>>>>> </plugin>
>>>>> 
>>>>> Question though, I don't know if I should be using a more granular bundle 
>>>>> than the "org.apache.cxf.bundle" listed above -- I can't find a sample 
>>>>> using something different, but IIRC CXF had/has a huge deprecated OSGi 
>>>>> bundle that included everything, I'm unsure if "org.apache.cxf.bundle" is 
>>>>> referring to that super-bundle, and hence I should be using something 
>>>>> else today.
>>>> With "modern" CXF usage, you shouldn't need the Require-Bundle stuff there 
>>>> at all, especially if you flip to using Blueprint instead of Spring.
>>>> 
>>>> 
>>>>> Another question:  What object in the CXF source code is 
>>>>> "org.apache.cxf.bundle" precisely referring to -- I can't find it within 
>>>>> the CXF features file ( 
>>>>> http://svn.apache.org/viewvc/cxf/trunk/osgi/karaf/features/src/main/resources/features.xml?view=markup)
>>>>>  and a <grep -r "org.apache.cxf.bundle" . --include "pom.xml"> from the 
>>>>> CXF trunk is returning nothing.  Stated another way, if the CXF team 
>>>>> wanted to change the name of the require-bundle to 
>>>>> "org.apache.cxf.bundle.banana", which pom.xml file (or other file?) in 
>>>>> the CXF source would need to be changed to accomplish that?
>>>> Well, it's actually one of two bundles depending on the environment:
>>>> 
>>>> osgi/bundle/all  - the big massive bundle from the <=2.5.x days.    
>>>> <bundle.symbolic.name>${project.groupId}.bundle</bundle.symbolic.name>
>>>> 
>>>> or:
>>>> 
>>>> osgi/bundle/compatible - for >=2.6.x, this is a tiny bundle named the same 
>>>> as the big bundle designed to provide some level of compatibility with the 
>>>> older big bundle by providing a bundle with the same name (so the 
>>>> Require-Bundle works).
>>>> 
>>>> In any case, for modern usage, I'd recommend removing the Require-Bundle 
>>>> entirely and let the maven bundle plugin do it's thing properly.
>>>> 
>>>> 
>>>> Hope that helps!
>>>> Dan
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> Thanks,
>>>>> Glen
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Glen Mazza
>>>>> http://www.jroller.com/gmazza/
>>>>> Twitter: glenmazza
>>>>> 
>>> 
>>> -- 
>>> Glen Mazza
>>> http://www.jroller.com/gmazza/
>>> Twitter: glenmazza
>>> 
> 
> 
> -- 
> Glen Mazza
> http://www.jroller.com/gmazza/
> Twitter: glenmazza
> 

Reply via email to