Search code examples
dockerwildfly-swarm

Wildfly swarm in docker - exception in starting http server


I'm running in Docker a jar file (host computer macosx), and during boot I get this stacktrace:

10:42:28,101 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default:
 Could not start http listener

rating_1       | 10:42:28,401 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
rating_1       |     ("subsystem" => "undertow"),
rating_1       |     ("server" => "default-server"),
rating_1       |     ("http-listener" => "default")
rating_1       | ]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
rating_1       |     Caused by: java.net.SocketException: Protocol family unavailable"}}
rating_1       | 10:42:28,405 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "ejb3")]) - failure description: {"WFLYCTL0288: One or more ser
vices were unable to start due to one or more indirect dependencies not being available." => {
"Services that were unable to start:" => [
"jboss.ejb.default-local-ejb-receiver-service",
"jboss.ejb3.ejbClientContext.default",
"jboss.ejb3.localEjbReceiver.value"
],
"Services that may be the cause:" => ["jboss.remoting.remotingConnectorInfoService.http-remoting-connector"]
}}

It seems, that it cant start the http server, that some service arent installed? Am I using the correct docker image?

Dockerfile:

FROM java:8


RUN mkdir -p /var/rating
ADD *.jar /var/rating

#ADD tomcat-users.xml /usr/local/tomcat/conf/

EXPOSE 8095
EXPOSE 8096
CMD ["java", "-jar", "/var/rating/ratingFacade-swarm.jar", "-server", "-d 64"]

I'm probably doing something wrong but I don't know what! Is it maybe an interface or a socket issue?

Edit:

These are the environment variables that I'm passing it in docker-compose.yml:

JAVA_TOOL_OPTIONS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8096,server=y,suspend=n -Dfile.encoding=UTF-8 -Xms128M -Xmx384M -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=8 -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+ScavengeBeforeFullGC -XX:+UseBiasedLocking -Dswarm.project.stage=stage -Dswarm.http.port=8095"

Solution

  • The java.net.SocketException: Protocol family unavailable part seems most important. I'd try adding the usual -Djava.net.preferIPv4Stack=true to see if that helps.