You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Thusitha Thilina Dayaratne <th...@wso2.com> on 2015/03/09 10:34:03 UTC
java.lang.Error: factory already defined when trying to start the Tomcat
Hi,
When I'm trying to start the embedded tomcat server I'm getting following
exception. Could someone tell me why am I getting that? Did I missed
anything in configuration?
I'm using JDK 1.8 and tomcat 8.0.20
ERROR {org.apache.catalina.core.ContainerBase} - A child container failed
> during start
> java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/]]
> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> at java.util.concurrent.FutureTask.get(FutureTask.java:192)
> at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
> at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.catalina.LifecycleException: Failed to start
> component
> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/]]
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
> ... 6 more
> Caused by: org.apache.catalina.LifecycleException: Failed to initialize
> component [org.apache.catalina.webresources.StandardRoot@7658b991]
> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
> at
> org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4840)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4970)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> ... 6 more
> Caused by: java.lang.Error: factory already defined
> at java.net.URL.setURLStreamHandlerFactory(URL.java:1105)
> at
> org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.<init>(TomcatURLStreamHandlerFactory.java:122)
> at
> org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.getInstanceInternal(TomcatURLStreamHandlerFactory.java:51)
> at
> org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.register(TomcatURLStreamHandlerFactory.java:75)
> at
> org.apache.catalina.webresources.StandardRoot.registerURLStreamHandlerFactory(StandardRoot.java:677)
> at
> org.apache.catalina.webresources.StandardRoot.initInternal(StandardRoot.java:660)
> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
> ... 10 more
> [2015-03-09 14:58:45,913] ERROR {org.apache.catalina.core.ContainerBase} -
> A child container failed during start
> java.util.concurrent.ExecutionException:
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardEngine[Catalina].StandardHost[localhost]]
> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> at java.util.concurrent.FutureTask.get(FutureTask.java:192)
> at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
> at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.wso2.carbon.tomcat.ext.service.ExtendedStandardService.startInternal(ExtendedStandardService.java:49)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.wso2.carbon.tomcat.internal.CarbonTomcat.start(CarbonTomcat.java:103)
> at
> org.wso2.carbon.tomcat.internal.ServerManager$1.run(ServerManager.java:99)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.catalina.LifecycleException: Failed to start
> component [StandardEngine[Catalina].StandardHost[localhost]]
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> ... 1 more
> Caused by: org.apache.catalina.LifecycleException: A child container
> failed during start
> at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:925)
> at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> ... 6 more
> [2015-03-09 14:58:45,914] ERROR
> {org.wso2.carbon.tomcat.internal.ServerManager} - tomcat life-cycle
> exception
> org.apache.catalina.LifecycleException: Failed to start component
> [StandardServer[8005]]
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
> at
> org.wso2.carbon.tomcat.internal.CarbonTomcat.start(CarbonTomcat.java:103)
> at
> org.wso2.carbon.tomcat.internal.ServerManager$1.run(ServerManager.java:99)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.catalina.LifecycleException: Failed to start
> component [StandardService[Catalina]]
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
> at
> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> ... 3 more
> Caused by: org.apache.catalina.LifecycleException: Failed to start
> component [StandardEngine[Catalina]]
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
> at
> org.wso2.carbon.tomcat.ext.service.ExtendedStandardService.startInternal(ExtendedStandardService.java:49)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> ... 5 more
> Caused by: org.apache.catalina.LifecycleException: A child container
> failed during start
> at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:925)
> at
> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> ... 7 more
I have extended the *StandardService *class and override the *startInternal
*method as follows
protected void startInternal() throws LifecycleException {
if (log.isDebugEnabled()) {
log.debug("starting extended standard service : " + this);
}
setState(LifecycleState.STARTING);
// Start our defined Container first
if (container != null) {
synchronized (container) {
container.start();
}
}
synchronized (executors) {
for (Executor executor : executors) {
executor.start();
}
}
mapperListener.start();
}
I debug the code and found out that container.start(); throws the
Exception. My *server.xml* file is as follows
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Service className="org.wso2.carbon.tomcat.ext.service.ExtendedStandardService"
name="Catalina">
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9763"
redirectPort="9443"
bindOnInit="false"
maxHttpHeaderSize="8192"
acceptorThreadCount="2"
maxThreads="250"
minSpareThreads="50"
disableUploadTimeout="false"
connectionUploadTimeout="120000"
maxKeepAliveRequests="200"
acceptCount="200"
server="WSO2 Carbon Server"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/javascript,application/x-javascript,application/javascript,application/xml,text/css,application/xslt+xml,text/xsl,image/gif,image/jpg,image/jpeg"
URIEncoding="UTF-8"/>
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9443"
bindOnInit="false"
sslProtocol="TLS"
maxHttpHeaderSize="8192"
acceptorThreadCount="2"
maxThreads="250"
minSpareThreads="50"
disableUploadTimeout="false"
enableLookups="false"
connectionUploadTimeout="120000"
maxKeepAliveRequests="200"
acceptCount="200"
server="WSO2 Carbon Server"
clientAuth="false"
compression="on"
scheme="https"
secure="true"
SSLEnabled="true"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/javascript,application/x-javascript,application/javascript,application/xml,text/css,application/xslt+xml,text/xsl,image/gif,image/jpg,image/jpeg"
keystoreFile="${carbon.home}/repository/resources/security/wso2carbon.jks"
keystorePass="wso2carbon"
URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<!--Realm className="org.apache.catalina.realm.MemoryRealm"
pathname="${carbon.home}/repository/conf/tomcat/tomcat-users.xml"/-->
<Realm className="org.wso2.carbon.tomcat.ext.realms.CarbonTomcatRealm"/>
<Host name="localhost" unpackWARs="true" deployOnStartup="false"
autoDeploy="false"
appBase="${carbon.home}/repository/deployment/server/webapps/">
<Valve
className="org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve"/>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="${carbon.home}/repository/logs"
prefix="http_access_" suffix=".log"
pattern="combined" />
<Valve
className="org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve"
threshold="600"/>
<Valve className="org.wso2.carbon.tomcat.ext.valves.CompositeValve"/>
</Host>
</Engine>
</Service>
</Server>
--
Thusitha Dayaratne
Software Engineer
WSO2 Inc. - lean . enterprise . middleware | wso2.com
Mobile +94712756809
Blog alokayasoya.blogspot.com
About http://about.me/thusithathilina
Re: java.lang.Error: factory already defined when trying to start
the Tomcat
Posted by Mark Thomas <ma...@apache.org>.
On 09/03/2015 09:34, Thusitha Thilina Dayaratne wrote:
> Hi,
>
> When I'm trying to start the embedded tomcat server I'm getting following
> exception. Could someone tell me why am I getting that? Did I missed
> anything in configuration?
> I'm using JDK 1.8 and tomcat 8.0.20
The more times you ask exactly the same question, the less chance there
is that someone will answer it.
The stack trace looks pretty self-explanatory with an obvious root cause.
Mark
>
> ERROR {org.apache.catalina.core.ContainerBase} - A child container failed
>> during start
>> java.util.concurrent.ExecutionException:
>> org.apache.catalina.LifecycleException: Failed to start component
>> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/]]
>> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>> at java.util.concurrent.FutureTask.get(FutureTask.java:192)
>> at
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
>> at
>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
>> at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>> at java.lang.Thread.run(Thread.java:745)
>> Caused by: org.apache.catalina.LifecycleException: Failed to start
>> component
>> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/]]
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
>> ... 6 more
>> Caused by: org.apache.catalina.LifecycleException: Failed to initialize
>> component [org.apache.catalina.webresources.StandardRoot@7658b991]
>> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
>> at
>> org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4840)
>> at
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4970)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> ... 6 more
>> Caused by: java.lang.Error: factory already defined
>> at java.net.URL.setURLStreamHandlerFactory(URL.java:1105)
>> at
>> org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.<init>(TomcatURLStreamHandlerFactory.java:122)
>> at
>> org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.getInstanceInternal(TomcatURLStreamHandlerFactory.java:51)
>> at
>> org.apache.catalina.webresources.TomcatURLStreamHandlerFactory.register(TomcatURLStreamHandlerFactory.java:75)
>> at
>> org.apache.catalina.webresources.StandardRoot.registerURLStreamHandlerFactory(StandardRoot.java:677)
>> at
>> org.apache.catalina.webresources.StandardRoot.initInternal(StandardRoot.java:660)
>> at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
>> ... 10 more
>> [2015-03-09 14:58:45,913] ERROR {org.apache.catalina.core.ContainerBase} -
>> A child container failed during start
>> java.util.concurrent.ExecutionException:
>> org.apache.catalina.LifecycleException: Failed to start component
>> [StandardEngine[Catalina].StandardHost[localhost]]
>> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>> at java.util.concurrent.FutureTask.get(FutureTask.java:192)
>> at
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
>> at
>> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> at
>> org.wso2.carbon.tomcat.ext.service.ExtendedStandardService.startInternal(ExtendedStandardService.java:49)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> at
>> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> at
>> org.wso2.carbon.tomcat.internal.CarbonTomcat.start(CarbonTomcat.java:103)
>> at
>> org.wso2.carbon.tomcat.internal.ServerManager$1.run(ServerManager.java:99)
>> at java.lang.Thread.run(Thread.java:745)
>> Caused by: org.apache.catalina.LifecycleException: Failed to start
>> component [StandardEngine[Catalina].StandardHost[localhost]]
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
>> at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
>> at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>> ... 1 more
>> Caused by: org.apache.catalina.LifecycleException: A child container
>> failed during start
>> at
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:925)
>> at
>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> ... 6 more
>> [2015-03-09 14:58:45,914] ERROR
>> {org.wso2.carbon.tomcat.internal.ServerManager} - tomcat life-cycle
>> exception
>> org.apache.catalina.LifecycleException: Failed to start component
>> [StandardServer[8005]]
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
>> at
>> org.wso2.carbon.tomcat.internal.CarbonTomcat.start(CarbonTomcat.java:103)
>> at
>> org.wso2.carbon.tomcat.internal.ServerManager$1.run(ServerManager.java:99)
>> at java.lang.Thread.run(Thread.java:745)
>> Caused by: org.apache.catalina.LifecycleException: Failed to start
>> component [StandardService[Catalina]]
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
>> at
>> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> ... 3 more
>> Caused by: org.apache.catalina.LifecycleException: Failed to start
>> component [StandardEngine[Catalina]]
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
>> at
>> org.wso2.carbon.tomcat.ext.service.ExtendedStandardService.startInternal(ExtendedStandardService.java:49)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> ... 5 more
>> Caused by: org.apache.catalina.LifecycleException: A child container
>> failed during start
>> at
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:925)
>> at
>> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>> ... 7 more
>
>
> I have extended the *StandardService *class and override the *startInternal
> *method as follows
>
> protected void startInternal() throws LifecycleException {
> if (log.isDebugEnabled()) {
> log.debug("starting extended standard service : " + this);
> }
> setState(LifecycleState.STARTING);
> // Start our defined Container first
> if (container != null) {
> synchronized (container) {
> container.start();
> }
> }
> synchronized (executors) {
> for (Executor executor : executors) {
> executor.start();
> }
> }
> mapperListener.start();
> }
>
> I debug the code and found out that container.start(); throws the
> Exception. My *server.xml* file is as follows
>
> <?xml version='1.0' encoding='utf-8'?>
> <Server port="8005" shutdown="SHUTDOWN">
>
> <Service className="org.wso2.carbon.tomcat.ext.service.ExtendedStandardService"
> name="Catalina">
>
> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
> port="9763"
> redirectPort="9443"
> bindOnInit="false"
> maxHttpHeaderSize="8192"
> acceptorThreadCount="2"
> maxThreads="250"
> minSpareThreads="50"
> disableUploadTimeout="false"
> connectionUploadTimeout="120000"
> maxKeepAliveRequests="200"
> acceptCount="200"
> server="WSO2 Carbon Server"
> compression="on"
> compressionMinSize="2048"
> noCompressionUserAgents="gozilla, traviata"
>
> compressableMimeType="text/html,text/javascript,application/x-javascript,application/javascript,application/xml,text/css,application/xslt+xml,text/xsl,image/gif,image/jpg,image/jpeg"
> URIEncoding="UTF-8"/>
>
> <Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
> port="9443"
> bindOnInit="false"
> sslProtocol="TLS"
> maxHttpHeaderSize="8192"
> acceptorThreadCount="2"
> maxThreads="250"
> minSpareThreads="50"
> disableUploadTimeout="false"
> enableLookups="false"
> connectionUploadTimeout="120000"
> maxKeepAliveRequests="200"
> acceptCount="200"
> server="WSO2 Carbon Server"
> clientAuth="false"
> compression="on"
> scheme="https"
> secure="true"
> SSLEnabled="true"
> compressionMinSize="2048"
> noCompressionUserAgents="gozilla, traviata"
>
> compressableMimeType="text/html,text/javascript,application/x-javascript,application/javascript,application/xml,text/css,application/xslt+xml,text/xsl,image/gif,image/jpg,image/jpeg"
>
> keystoreFile="${carbon.home}/repository/resources/security/wso2carbon.jks"
> keystorePass="wso2carbon"
> URIEncoding="UTF-8"/>
>
>
>
> <Engine name="Catalina" defaultHost="localhost">
>
> <!--Realm className="org.apache.catalina.realm.MemoryRealm"
> pathname="${carbon.home}/repository/conf/tomcat/tomcat-users.xml"/-->
>
> <Realm className="org.wso2.carbon.tomcat.ext.realms.CarbonTomcatRealm"/>
>
> <Host name="localhost" unpackWARs="true" deployOnStartup="false"
> autoDeploy="false"
> appBase="${carbon.home}/repository/deployment/server/webapps/">
> <Valve
> className="org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve"/>
> <Valve className="org.apache.catalina.valves.AccessLogValve"
> directory="${carbon.home}/repository/logs"
> prefix="http_access_" suffix=".log"
> pattern="combined" />
> <Valve
> className="org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve"
> threshold="600"/>
> <Valve className="org.wso2.carbon.tomcat.ext.valves.CompositeValve"/>
> </Host>
> </Engine>
> </Service>
> </Server>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org