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 <[email protected]>:
>
> 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 <[email protected]> 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 <[email protected]>
>>> 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 <[email protected]>
>>>> 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 <[email protected]> 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: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> WBR
>>>>> Maxim aka solomax
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> WBR
>>>> Maxim aka solomax
>>>>
>>>
>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
> --
> WBR
> Maxim aka solomax
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]