tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tobias Soloschenko <tobiassolosche...@googlemail.com>
Subject Re: Start embedded Tomcat 9.0.1 server from java code
Date Tue, 07 Nov 2017 17:07:21 GMT
Hi Maxim,

same for me I just created a simple setup like this:

	String baseDir =".";
        String webappDirLocation = "src/main/webapp/";
        String webxmlDirLocation = "src/main/webapp/WEB-INF/web.xml";
        Tomcat tomcat = new Tomcat();
        tomcat.setPort(8080);
        tomcat.setBaseDir(baseDir);
        tomcat.getHost().setAppBase(baseDir);
        tomcat.getHost().setDeployOnStartup(true);
        tomcat.getHost().setAutoDeploy(true);
        tomcat.enableNaming();
        StandardContext ctx = (StandardContext) tomcat.addWebapp("/project", new File(webappDirLocation).getAbsolutePath());
        File additionWebInfClasses = new File("target/classes");
        WebResourceRoot resources = new StandardRoot(ctx);
        resources.addPreResources(new DirResourceSet(resources, "/WEB-INF/classes",
                additionWebInfClasses.getAbsolutePath(), "/"));
        ctx.setResources(resources);
        ctx.setDefaultWebXml(new File(webxmlDirLocation).getAbsolutePath());
        tomcat.start();
        tomcat.getServer().await();

I just placed in a Servlet into my classpath and applied the mapping in the web.xml - with
the dependencies of tomcat-embed-core and tomcat-embed-jasper of version 9.0.1 it is not working
and with 8.5.23 it does.

Here is the log of both.

8.5.23

Nov. 07, 2017 6:02:44 NACHM. org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["http-nio-8080"]
Nov. 07, 2017 6:02:44 NACHM. org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMATION: Using a shared selector for servlet write/read
Nov. 07, 2017 6:02:44 NACHM. org.apache.catalina.core.StandardService startInternal
INFORMATION: Starting service [Tomcat]
Nov. 07, 2017 6:02:44 NACHM. org.apache.catalina.core.StandardEngine startInternal
INFORMATION: Starting Servlet Engine: Apache Tomcat/8.5.23
Nov. 07, 2017 6:02:44 NACHM. org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
INFORMATION: No global web.xml found
Nov. 07, 2017 6:02:45 NACHM. org.apache.coyote.AbstractProtocol start
INFORMATION: Starting ProtocolHandler ["http-nio-8080“]

9.0.1

Nov. 07, 2017 6:06:56 NACHM. org.apache.catalina.core.StandardService startInternal
INFORMATION: Starting service [Tomcat]
Nov. 07, 2017 6:06:56 NACHM. org.apache.catalina.core.StandardEngine startInternal
INFORMATION: Starting Servlet Engine: Apache Tomcat/9.0.1
Nov. 07, 2017 6:06:56 NACHM. org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
INFORMATION: No global web.xml found

kind regards

Tobias

> Am 07.11.2017 um 15:56 schrieb Maxim Solodovnik <solomax666@gmail.com>:
> 
> Thanks for the hints :)
> 
> I have created sample project: https://github.com/solomax/tomcat-from-java
> 
> I have compared detailed logs.
> 
> Following lines appears in logs while Tomcat8 is used
>         Nov 07, 2017 9:1 PM org.apache.catalina.util.LifecycleBase
> setStateInternal
>         FINE: Setting state for [Connector[HTTP/1.1-8080]] to
> [INITIALIZING]
>         Nov 07, 2017 9:1 PM org.apache.tomcat.util.modeler.Registry
> registerComponent
>         FINE: Managed= Tomcat:type=Connector,port=8080
> 
> These lines are missing while Tomcat9 is used
> 
> Maybe you can tell me why?
> 
> On Mon, Nov 6, 2017 at 7:55 PM, Mark Thomas <markt@apache.org> wrote:
> 
>> On 04/11/17 15:25, Maxim Solodovnik wrote:
>>> Maybe I can set breakpoint somewhere? and check what is wrong?
>>> Could you point me to the correct class?
>> 
>> No idea where to look at this point. I'd probably start with the start()
>> method and go from there.
>> 
>> Maybe try turning on debug logging?
>> 
>> Mark
>> 
>> 
>>> 
>>> On Fri, Nov 3, 2017 at 5:26 PM, Maxim Solodovnik <solomax666@gmail.com>
>>> wrote:
>>> 
>>>> I'm OK to add missing code to my tests,
>>>> but I'm not sure what need to be added :(
>>>> 
>>>> On Fri, Nov 3, 2017 at 3:24 PM, Maxim Solodovnik <solomax666@gmail.com>
>>>> wrote:
>>>> 
>>>>> I see no errors,
>>>>> Using debugger I can see tomcat.server.state == STARTED
>>>>> 
>>>>> Everything works as expected if I'm switching back to 8.5.23 without
>> any
>>>>> other changes
>>>>> 
>>>>> nestat reports:
>>>>> *netstat -an |grep 8080*
>>>>> tcp6       0      0 :::8080                 :::*
>>>>> LISTEN
>>>>> 
>>>>> for 8.5.23
>>>>> 
>>>>> 
>>>>> On Fri, Nov 3, 2017 at 3:08 PM, Mark Thomas <markt@apache.org>
wrote:
>>>>> 
>>>>>> On 03/11/17 04:51, Maxim Solodovnik wrote:
>>>>>>> Hello,
>>>>>>> 
>>>>>>> I recently migrated from Tomcat 8.5.23 to Tomcat 9.0.1
>>>>>>> Everything works as expected except tests :(
>>>>>>> 
>>>>>>> I'm using following code to start embedded Tomcat and test CXF
web
>>>>>> services [1].
>>>>>>> With Tomcat 9.0.1 tests failed, netstat -an displays port 8080
is not
>>>>>>> being listened
>>>>>>> What need to be changed?
>>>>>> 
>>>>>> If Tomcat isn't listening then there should be an exception or error
>>>>>> message reported at some point. Do you see anything in the logs?
>>>>>> 
>>>>>> Mark
>>>>>> 
>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> [1] https://github.com/apache/openmeetings/blob/master/openmeeti
>>>>>> ngs-web/src/test/java/org/apache/openmeetings/webservice/
>>>>>> AbstractWebServiceTest.java#L98
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> WBR
>>>> Maxim aka solomax
>>>> 
>>> 
>>> 
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 
> 
> 
> -- 
> WBR
> Maxim aka solomax


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message