tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maxim Solodovnik <solomax...@gmail.com>
Subject Re: Start embedded Tomcat 9.0.1 server from java code
Date Wed, 08 Nov 2017 06:53:18 GMT
Thanks for the clarifications!
I'll update my code

On Wed, Nov 8, 2017 at 1:49 PM, Rémy Maucherat <remm@apache.org> wrote:

> On Wed, Nov 8, 2017 at 5:30 AM, Maxim Solodovnik <solomax666@gmail.com>
> wrote:
>
> > OK :)
> > I finally found the difference :)))
> >
> > Tomcat.java 8.5.23:
> >     public void start() throws LifecycleException {
> >         getServer();
> >         getConnector();
> >         server.start();
> >     }
> >
> > Tomcat.java 9.0.1:
> >     public void start() throws LifecycleException {
> >         getServer();
> >         server.start();
> >     }
> >
> > This is why Tomcat 9.0.2 has no connectors ....
> > Is it bug or feature?
> >
>
> The automatic connector creation, among other tings, was conflicting with
> other more sophisticated uses so it was refactored. It was not possible to
> start Tomcat without a connector so that capability was added in Tomcat 9.
> If you want to get a default connector, you have to call getConnector
> yourself.
> BZ60297, BZ60368, then a Tomcat 9 specific change.
>
> Rémy
>
> >
> >
> > On Wed, Nov 8, 2017 at 12:07 AM, Tobias Soloschenko <
> > tobiassoloschenko@googlemail.com> wrote:
> >
> > > 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
> > >
> > >
> >
> >
> > --
> > WBR
> > Maxim aka solomax
> >
>



-- 
WBR
Maxim aka solomax

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message