There are definitely two different versions of Jetty trying to start up in your
runtime:
This one:
> 03/23/2019 09:41:58.645|INFO |main|Started
> ServerConnector@77a074b4{HTTP/1.1,[http/1.1]}{0.0.0.0:8080
> <http://0.0.0.0:8080/>}
>
> [INFO] Started Jetty 9.4.9.v20180320 at port(s) HTTP:8080 on context path /
> [minThreads=8,maxThreads=200,acceptors=1,selectors=6]
>
And this one:
> [DEBUG] Adding bundle org.apache.felix.http.jetty:4.0.6 (49) : starting
>
> 03/23/2019 09:41:59.029|INFO |main|jetty-9.4.14.v20181114; built:
> 2018-11-14T21:20:31.478Z; git: c4550056e785fb5665914545889f21dc136ad9e6; jvm
> 1.8.0_192-b12
>
> On 23 Mar 2019, at 14:34, Raymond Auge via osgi-dev <[email protected]>
> wrote:
>
>
> In the second case, could the runbundles contain duplicate felix jetty
> bundles (like of different versions)?
>
> - Ray
>
> On Sat, Mar 23, 2019 at 9:58 AM jhrayburn--- via osgi-dev
> <[email protected] <mailto:[email protected]>> wrote:
> I have multiple sets of bundles for different capabilities.
>
>
>
> AuthApp
>
> AuthProvider
>
> AuthProviderApi
>
> AuthPersistence
>
> AuthPersistenceApi
>
> AuthRestService
>
>
>
> ResApp
>
> RestProvider
>
> RestProviderApi
>
> RestPersistence
>
> RestPersistenceApi
>
> ResRestService
>
>
>
> The Auth bundles are independent of the Res bundles. When I Run the AuthApp,
>
>
>
> -runfw: org.apache.felix.framework;version='[6.0.0,6.0.0]'
>
> -runee: JavaSE-1.8
>
> -runprovidedcapabilities: ${native_capability}
>
>
>
> -resolve.effective: active
>
>
>
> -runvm: -ea, -Xms10m, -Dlogback.configurationFile=resources/logback.xml
>
>
>
> -runproperties: org.osgi.service.http.port=8080
>
>
>
> -runrequires: \
>
> bnd.identity;id='AuthApp'
>
> ...
>
>
>
> The runs without any issue and connection can be made to the rest endpoints
>
>
>
> When I run the ResApp, with the following source
>
>
>
> -runfw: org.apache.felix.framework;version='[6.0.0,6.0.0]'
>
> -runee: JavaSE-1.8
>
> -runprovidedcapabilities: ${native_capability}
>
>
>
> -resolve.effective: active
>
>
>
> -runvm: -ea, -Xms10m, -Dlogback.configurationFile=resources/logback.xml
>
>
>
> -runproperties: org.osgi.service.http.port=8080
>
>
>
> -runrequires: \
>
> bnd.identity;id='ResApp',\
>
> bnd.identity;id='AuthApp'
>
> ...
>
>
>
> The OSGi is bound to 0.0.0.0:8080 <http://0.0.0.0:8080/> and listening. In
> addition I am seeing the following lines and exception.
>
>
>
> 03/23/2019 09:41:58.645|INFO |main|Started
> ServerConnector@77a074b4{HTTP/1.1,[http/1.1]}{0.0.0.0:8080
> <http://0.0.0.0:8080/>}
>
> [INFO] Started Jetty 9.4.9.v20180320 at port(s) HTTP:8080 on context path /
> [minThreads=8,maxThreads=200,acceptors=1,selectors=6]
>
> 03/23/2019 09:41:58.799|INFO |main|created whiteboard from configuration:
> {service.pid=org.apache.aries.jax.rs.whiteboard.default}
>
> Mar 23, 2019 9:41:58 AM org.apache.cxf.endpoint.ServerImpl initDestination
>
> INFO: Setting the server's publish address to be /
>
> [DEBUG] [ServiceReference 34 from bundle 35 :
> org.apache.aries.jax.rs.whiteboard:1.0.1
> ref=[org.osgi.service.http.context.ServletContextHelper]
> properties={objectClass=[org.osgi.service.http.context.ServletContextHelper],
> original.service.bundleid=35, original.service.id
> <http://original.service.id/>=33, osgi.http.whiteboard.context.name
> <http://osgi.http.whiteboard.context.name/>=default,
> osgi.http.whiteboard.context.path=,
> osgi.http.whiteboard.target=(osgi.http.endpoint=*),
> osgi.jaxrs.application.base=/, osgi.jaxrs.name
> <http://osgi.jaxrs.name/>=.default,
> osgi.jaxrs.whiteboard.target=(service.pid=org.apache.aries.jax.rs.whiteboard.default),
> service.bundleid=35, service.id <http://service.id/>=34,
> service.pid=org.apache.aries.jax.rs.whiteboard.default,
> service.ranking=-2147483648, service.scope=singleton}] Ignoring invalid
> ServletContextHelper service
>
> [DEBUG] Adding bundle org.apache.felix.http.jetty:4.0.0 (48) : active
>
> [DEBUG] Adding bundle org.apache.felix.http.jetty:4.0.6 (49) : starting
>
> 03/23/2019 09:41:59.029|INFO |main|jetty-9.4.14.v20181114; built:
> 2018-11-14T21:20:31.478Z; git: c4550056e785fb5665914545889f21dc136ad9e6; jvm
> 1.8.0_192-b12
>
> 03/23/2019 09:41:59.031|INFO |main|DefaultSessionIdManager workerName=node0
>
> 03/23/2019 09:41:59.032|INFO |main|No SessionScavenger set, using defaults
>
> 03/23/2019 09:41:59.032|INFO |main|node0 Scavenging every 660000ms
>
> 03/23/2019 09:41:59.036|INFO |main|Started
> o.e.j.s.ServletContextHandler@2a39aa2b{/,null,AVAILABLE}
>
> 03/23/2019 09:41:59.036|INFO |main|Started @2828ms
>
> 03/23/2019 09:41:59.036|INFO |main|node0 Scavenging every 660000ms
>
> [ERROR] Failed to start Connector:
> ServerConnector@3b7eac14{HTTP/1.1,[http/1.1]}{0.0.0.0:8080
> <http://0.0.0.0:8080/>}
>
> java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:8080
> <http://0.0.0.0/0.0.0.0:8080>
> at
> org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:346)
>
> at
> org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:308)
>
> at
> org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
>
> at
> org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)
>
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>
> at
> org.apache.felix.http.jetty.internal.JettyService.startConnector(JettyService.java:695)
>
> at
> org.apache.felix.http.jetty.internal.JettyService.initializeHttp(JettyService.java:546)
>
> at
> org.apache.felix.http.jetty.internal.JettyService.initializeJetty(JettyService.java:444)
>
> at
> org.apache.felix.http.jetty.internal.JettyService.startJetty(JettyService.java:305)
>
> at
> org.apache.felix.http.jetty.internal.JettyService.start(JettyService.java:148)
>
> at
> org.apache.felix.http.jetty.internal.JettyActivator.doStart(JettyActivator.java:66)
>
> at
> org.apache.felix.http.base.internal.AbstractActivator.start(AbstractActivator.java:39)
>
> at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
>
> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2398)
>
> at org.apache.felix.framework.Felix.startBundle(Felix.java:2304)
>
> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
>
> at aQute.launcher.Launcher.startBundles(Launcher.java:519)
>
> at aQute.launcher.Launcher.activate(Launcher.java:425)
>
> at aQute.launcher.Launcher.run(Launcher.java:303)
>
> at aQute.launcher.Launcher.main(Launcher.java:149)
>
> Caused by: java.net.BindException: Address already in use: bind
>
> at sun.nio.ch.Net.bind0(Native Method)
>
> at sun.nio.ch.Net.bind(Unknown Source)
>
> at sun.nio.ch.Net.bind(Unknown Source)
>
> at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
>
> at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
>
> at
> org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:342)
>
> ... 19 more
>
>
>
>
>
> I can still access the rest endpoints defined in AuthRestService. Some of my
> ResRestService endpoints are returning with a 404 so I don’t know if they all
> are not accessible. What should I look for to identify why port 8080 is
> attempting to be bound to again?
>
>
>
> Also on a second question, what is the best tool for felix to identify all
> available rest endpoints?
>
>
>
> Thank you,
>
> Jim
>
> _______________________________________________
> OSGi Developer Mail List
> [email protected] <mailto:[email protected]>
> https://mail.osgi.org/mailman/listinfo/osgi-dev
> <https://mail.osgi.org/mailman/listinfo/osgi-dev>
>
> --
> Raymond Augé <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000)
> Senior Software Architect Liferay, Inc. <http://www.liferay.com/> (@Liferay)
> Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org/> (@OSGiAlliance)
> _______________________________________________
> OSGi Developer Mail List
> [email protected]
> https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev