Re: taglibs

2017-11-07 Thread Ray Holme
OK, so I tried that and found one library needs to be excluded (from the 
exclusion list) - i.e. scanned
# ls jstl*; grep ".tld" jstl-*
jstl-api-1.2.jar  jstl-impl-1.2.jar
Binary file jstl-impl-1.2.jar matches

So if your rule works, I need jstl-impl to be scanned, but jstl-api could be 
excluded.
Nice! Thanks.
Ray
 

On Monday, November 6, 2017 10:54 AM, Mark H. Wood  wrote:
 

 On Mon, Nov 06, 2017 at 10:13:42AM -0500, Christopher Schultz wrote:
> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
> 
> Ray,
> 
> On 11/6/17 9:48 AM, Ray Holme wrote:
> > I am not the primary developer. I do Java and DB development. I
> > leave the JSP for someone else (I am mostly retired but I have
> > been doing this a LONG time).> But I deal with distributions and
> > builds so I was the one who modified the "not to SCAN"
> > libraries.2.5 minutes down to less than 1 second.
> Fast and broken is worse than slow and working. :)
> 
> > But I blew it with the jstl jars so I just wanted to know if there
> > is any way to find out if the jar is a taglib.
> So... generally speaking I would say "you should know your own
> libraries" but it shouldn't be hard to determine which libraries are
> taglibs. Simply look in each JAR file to see if there are any ".tld"
> files.

That's what I thought, too.  I looked, and the jstl-api JAR doesn't
contain any TLDs.  The corresponding jstl-impl JAR does, though.

-- 
Mark H. Wood
Lead Technology Analyst

University Library
Indiana University - Purdue University Indianapolis
755 W. Michigan Street
Indianapolis, IN 46202
317-274-0749
www.ulib.iupui.edu

   

Re: Start embedded Tomcat 9.0.1 server from java code

2017-11-07 Thread Maxim Solodovnik
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  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 
> > 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 
> >> 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  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-unsubscr...@tomcat.apache.org
>  For additional commands, e-mail: users-h...@tomcat.apache.org
> 
> 
> >>>
> >>>
> >>> --
> >>> WBR
> >>> Maxim aka solomax
> >>>
> >>
> >>
> >>
> >> --
> >> WBR
> >> Maxim aka solomax
> >>
> >
> >
> >
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>


-- 
WBR
Maxim aka solomax


Re: Start embedded Tomcat 9.0.1 server from java code

2017-11-07 Thread Tobias Soloschenko
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 :
> 
> 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  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 
>>> 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 
 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  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-w

Upgrade from tomcat 7 to tomcat 8.5 (UNCLASSIFIED)

2017-11-07 Thread Lueders, Paul T CIV USARMY NGIC (US)
CLASSIFICATION: UNCLASSIFIED

I have been tasked with determining what we should use as a web server in the 
future.  We are currently using tomcat 7 and I thought that it might be good to 
migrate to version 8.5.
Is the change possible and is it worth it?

Thanks a lot,

Paul Lueders0
CLASSIFICATION: UNCLASSIFIED

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



Re: Upgrade from tomcat 7 to tomcat 8.5 (UNCLASSIFIED)

2017-11-07 Thread Igal @ Lucee.org

On 11/7/2017 12:49 PM, Lueders, Paul T CIV USARMY NGIC (US) wrote:

CLASSIFICATION: UNCLASSIFIED

I have been tasked with determining what we should use as a web server in the 
future.  We are currently using tomcat 7 and I thought that it might be good to 
migrate to version 8.5.
Is the change possible and is it worth it?

The short answers are: Yes, and Yes.

You might need to make some minor changes to your configuration files, 
but the upgrade shouldn't be too difficult.


Newer versions of Tomcat offer a lot of improvements in features, 
security, and performance.



Thanks a lot,

Paul Lueders0
CLASSIFICATION: UNCLASSIFIED

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



Igal Sapir

Lucee Core Developer
Lucee.org 



Re: Start embedded Tomcat 9.0.1 server from java code

2017-11-07 Thread Maxim Solodovnik
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?


On Wed, Nov 8, 2017 at 12:07 AM, Tobias Soloschenko <
tobiassolosche...@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 :
> >
> > 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  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  >
> >>> 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 <
> solomax...@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 
> wrot

Re: Start embedded Tomcat 9.0.1 server from java code

2017-11-07 Thread Rémy Maucherat
On Wed, Nov 8, 2017 at 5:30 AM, Maxim Solodovnik 
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 <
> tobiassolosche...@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  >:
> > >
> > > 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  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 

Re: Start embedded Tomcat 9.0.1 server from java code

2017-11-07 Thread Maxim Solodovnik
Thanks for the clarifications!
I'll update my code

On Wed, Nov 8, 2017 at 1:49 PM, Rémy Maucherat  wrote:

> On Wed, Nov 8, 2017 at 5:30 AM, Maxim Solodovnik 
> 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 <
> > tobiassolosche...@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 <
> solomax...@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 
> wrote:
> > > >
> > > >> On 04/11/17 15:25, 

Re: Start embedded Tomcat 9.0.1 server from java code

2017-11-07 Thread Maxim Solodovnik
 This is why Tomcat 9.0.1 has no connectors 

sorry for the typo

On Wed, Nov 8, 2017 at 11:30 AM, Maxim Solodovnik 
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?
>
>
> On Wed, Nov 8, 2017 at 12:07 AM, Tobias Soloschenko <
> tobiassolosche...@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).getAbs
>> olutePath());
>> 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).getAbs
>> olutePath());
>> 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 :
>> >
>> > Thanks for the hints :)
>> >
>> > I have created sample project: https://github.com/solomax/tom
>> cat-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  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 <
>> solomax...@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 <
>> solomax...@gmail.com>
>>  wrote:
>> 
>> > I see no errors,
>> > Using debugger I can see tomcat.server.state == STARTED
>> >
>> > Everything works a

Re: Start embedded Tomcat 9.0.1 server from java code

2017-11-07 Thread Tobias Soloschenko
Thanks for the hints! :-)

kind regards

Tobias

> Am 08.11.2017 um 07:49 schrieb Rémy Maucherat :
> 
> On Wed, Nov 8, 2017 at 5:30 AM, Maxim Solodovnik 
> 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 <
>> tobiassolosche...@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 >> :
 
 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  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.
> 
> M