Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest Authentication problem

2015-03-17 Thread Rainer Jung

Am 17.03.2015 um 15:40 schrieb Sascha Skorupa:

Hi Rainer,

currently not (Apache 2.2) but it might be an option to upgrade the OS and the 
Apache if it leads to a solution.


OK. But think twice, whether it is better to just compile mod_jk from 
sources or do the big update. Updating to 2.4 will bring many 
interesting achievements, but just for fixing this issue quickly it 
would be better to update mod_jk, even if this means switching to a 
non-OS-provided variant.


If you seriously plan the 2.4 update and you have a test system, I could 
provide you with the non-trivial workaround letting Apache set the 
cookie. You would need to thoroughly test this though.


Regards,

Rainer

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



Re: java.lang.NullPointerException at org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536) when starting Embedded Tomcat Instance

2015-03-17 Thread Thusitha Thilina Dayaratne
Hi,

I manually set the TldCache in my context and get rid of the
NullPointerException. But now I'm getting following exception

org.apache.jasper.JasperException: The absolute uri:
 http://tiles.apache.org/tags-tiles cannot be resolved in either web.xml
 or the jar files deployed with this application
 at
 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:55)
 at
 org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:277)
 at
 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
 at
 org.apache.jasper.compiler.TagLibraryInfoImpl.generateTldResourcePath(TagLibraryInfoImpl.java:240)
 at
 org.apache.jasper.compiler.TagLibraryInfoImpl.init(TagLibraryInfoImpl.java:124)
 at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:411)
 at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
 at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
 at
 org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
 at
 org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
 at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
 at
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:570)
 at
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
 at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:175)
 at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
 at
 org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
 at
 org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
 at
 org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
 at
 org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
 at
 org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:64)
 at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
 at
 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
 at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
 at
 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at
 org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
 at
 org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
 at
 org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
 at
 org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
 at
 org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:30)
 at
 org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.forward(ContextPathServletAdaptor.java:362)
 at
 org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198)
 at
 org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:185)
 at
 org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:419)
 at
 org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:370)
 at org.wso2.carbon.ui.action.ActionHelper.render(ActionHelper.java:52)
 at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:101)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
 at
 org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
 at
 org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
 at
 org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
 at
 org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
 at
 org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:64)
 at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
 at
 

AW: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest Authentication problem

2015-03-17 Thread Sascha Skorupa
Indeed, it seems a little bit strange and certainly you are right. I think the 
main reason is that it would be more complicated to maintain the system with 
regular security updates. It has to be a manual process.

Somehow or other we need a working solution. It is also an option to fix 
DigestAuthenticator class in tomcat6 to split digest authentication header like 
it is done in tomcat7, because this is the real cause of the problem - the 
regular expression submitted to the split method cannot properly handle 
unquoted parameters at the end of the auth header line.

Thank you for your constructive input.

-sascha

Von: Christopher Schultz [ch...@christopherschultz.net]
Gesendet: Dienstag, 17. März 2015 17:10
Bis: Tomcat Users List
Betreff: Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest 
Authentication problem

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Rainer,

On 3/17/15 11:12 AM, Rainer Jung wrote:
 Am 17.03.2015 um 15:40 schrieb Sascha Skorupa:
 Hi Rainer,

 currently not (Apache 2.2) but it might be an option to upgrade
 the OS and the Apache if it leads to a solution.

 OK. But think twice, whether it is better to just compile mod_jk
 from sources or do the big update.

+1

I find it hard to believe that you (or your NOC) would be willing to
upgrade the OS and the web server to use an alternative solution, but
not willing to upgrade to a newer version of single, specialized
module for the web server.

Note that you don't have to have a compiler on the target system; you
just need to be able to cross-compile to that test system (or do what
I do and have a spare server with identical architecture, etc.
available for module builds).

 Updating to 2.4 will bring many interesting achievements, but just
 for fixing this issue quickly it would be better to update mod_jk,
 even if this means switching to a non-OS-provided variant.

+1

Building is trivial.

 If you seriously plan the 2.4 update and you have a test system, I
 could provide you with the non-trivial workaround letting Apache
 set the cookie. You would need to thoroughly test this though.

- -chris

-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJVCFHcAAoJEBzwKT+lPKRYOQAQAJnIlsepWBvZlO438/zwXIYM
WI0X3LspAUt1v1c0JOXagL5VUdZO68/euBV7rmoKaHvo11lEH5lFQ9M91unvRWer
d7AQZoTc1+VQDcnBrGDzw6M7jQqlKf2Y7Jadlj9TfNm68cwCYFhpan1Wcv/XCMpy
/1Q5j/gW77AdPNpAvtFGOXZ0HPbMpkC+ZpsfFjgpOrwUBPL195xpQXM5nJLoYpAa
7uR34FCAbIIR0Glho/IHqzadxrSBq3AEVZau1uiGi3t8BjuWcOfq85bMZ0dCGdl+
Hlj6wKaTpS6AJi9By5d0xbXkqu5wBY2qFgY6wNq/cHO/Js+svPPMtME7eUZiOPAY
t2dUszkzqw0JOEqTN0I1gr0cGVOhJYbHMAdCHrb15FtWACeQVHVK7ikI0GJvKMG3
8EUIW21go3ID4jHBpexMC23QZDKfDTIhzx9Ec300lxRbjkfzpTCEvu3mM36w6y7+
fsRPPkpY0KqFe25nYw/DZCMS4KeAZ5dZSQa3sQSYgpozP71UrRZJw2+cqdALj29Q
Ozru/eLGLAvJuOKbXgSMIBfEQugx8vTGzE60Db7e61thMPmyHXlHqi1+zKDnODej
g6kbQtNDhak+0AfI2oFbmvHGz+hN8bAJa62hA/3jDKiYphxwH2JpJW4qmcs7HI91
qRp/u8yrAe8S/UAc+x+2
=95gA
-END PGP SIGNATURE-

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

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



RE: Multiple SSL certificates on one Instance

2015-03-17 Thread Jeffrey Janner
 -Original Message-
 From: Rory Kelly [mailto:rory.ke...@fernsoftware.com]
 Sent: Monday, March 16, 2015 7:53 AM
 To: Tomcat Users List
 Subject: Multiple SSL certificates on one Instance
 
 Hey guys,
 
 
 
 I’ve a bad feeling what I’m trying to do is impossible, and I’m going to
 have to implement a different solution. Been hunting for an answer, but
 couldn’t find anything definite.
 
 I’m running Tomcat 8.0.18,
 
 Java 1.7.0_75-b13,
 
 Ubuntu 14.04.
 
 
 
 I have multiple sites running on Virtual Hosts on the instance. For a
 bit
 of background, I am intending on creating a 2-server load balanced
 system
 using nginx as a balancer on virtual servers (Best I can do, given our
 hosting/not possible to move away from it)
 
 I need each site to be protected by its own SSL certificate, provided by
 the client for each site.
 
 
 
 Can I actually have multiple SSL certs with Tomcat Virtual Hosts, or am
 I
 going to have to go learn nginx/httpd and provide it that way?
 
 
 
 Thanks,
 
 Rory

Rory -
The guys have all given some hints that this is probably coming, but not yet 
here. The rest of the answers depends on your ultimate requirements.
If you require that all the hosts are truly virtual, i.e. they all listen to 
the same IP-port combo, then it's definitely easier/better to terminate the SSL 
on your NGINX load-balancer, which presumably already has the needed support. 
There are some minor adjustments on the Tomcat connector config, but they are 
adequately explained in the Tomcat docs. Plus terminating on the load-balancer 
will save some processing cycles in Tomcat.
If you have the ability to assign multiple IP-port combo, then there's really 
only 1 way to do it on the Tomcat side: Create a unique Service tree for each 
host.  This tree will have its own Engine, Connector, Valve, Host, etc. 
entries, basically everything you might need that can't be put at the Global 
level. Be sure to specify both an HTTP and HTTPS connector so that TRANSPORT 
GUARANTEE will function properly.  Trying to do it all inside one Service 
tree is just asking for trouble.
If you go back in the archives a year or so, I think I posted a sample 
server.xml implementing the above.
Jeff

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



Re: [Tomcat8] What happened to WebappLoader.addRepository()?

2015-03-17 Thread Mark Thomas
On 17/03/2015 18:30, Ed Rouse wrote:
 
 
 -Original Message-
 From: Pilkington, Simon [mailto:simo...@amazon.com]
 Sent: Tuesday, March 17, 2015 12:45 PM
 To: users@tomcat.apache.org
 Subject: [Tomcat8] What happened to WebappLoader.addRepository()?

 Hey tomcat users,

 The javadoc for WebappLoader still tells me to use addRepository(), but
 that method no longer exists. My team has implemented an extension of
 WebappLoader that looked like this:

 http://cp.mcafee.com/d/1jWVIq3zqb2rzydPhOCYrKrhKCqenTzhOe7cCQrFCzBZUQsL
 9ICQrFCzBZUQszxP1J6WpEVvd7aabPxLURrFUalAv3UYKrlAv3UYKrKXHXRTT-LPz5TCnA-
 LsKyev7szsQsIFICzBzBHEShhlKYPOEuvkzaT0QSyrjdTdTdAVPmEBCjGHrpZGSS9_M079R
 lJIOUXHBQaSPlFo01PlJIj_brfjVgT3WWxYs0nO6Hb1mKEv7wsrrFYq5U_dKc2WrWr9EVjb
 _6HtfelAv3UYK2FRlJI-
 Rrr4_U02rs7e3zpFr1dlrrdUQKCy01iuPd41flBLxW1EwDkQg0bV3lBwHnkfzSE80LRGQBe
 IiNEEd598S-UrI1Lf5-sL
 http://cp.mcafee.com/d/2DRPoAd3hJ5xdNN6VEVjudTdETjd7bXNEV73CjqdQPhO-
 YqenASjqdQPhO-
 YqehMVwSztcQsLCzB55VMTYqJQY5aOfxYundGOfxYundTtRZWXX_nVNyXPbOvnKnh7fzKhK
 qemkSjhONORQr8EGTupVkffGhBrwqrjdFCXCXCOsVHkiP9RlJI-
 Rrr4_U03AWGSSptXHBQaSPlFo01PlJIj_brfjVgT3WWxYs0nO6Hb1mKEv7wsrrFYq5U_dKc
 2WrWr9EVjb_6HtfelAv3UYK2FRlJI-
 Rrr4_U02rs7e3zpFr1dlrrdUQKCy01iuPd41flBLxW1EwDkQg0bV3lBwHnkfzSE80LRGQBe
 IiNEEd598S-UrHrI5

@Override
protected void startInternal() throws LifecycleException {
// validate the context, which is used for debugging messages
Context context;
{
Container container = getContainer();
if (container == null) {
throw new LifecycleException(Container is null?!);
}
if (!(container instanceof Context)) {
throw new LifecycleException(Container is not an
 instance of Context?!);
}
context = (Context) container;
}

if (ENVIRONMENT_ROOT != null  ENVIRONMENT_ROOT.length()  0) {
// validate targetPackage
if (null == targetPackage) {
throw new LifecycleException(
Missing required Loader attribute
 \targetPackage\ in Context configuration  +
context.getConfigFile());
}

try {
// Excluded jars are those already pulled in by tomcat.
SetString allExcludedJars = getAllExcludedJars();
SetString reallyExcludedJars = new HashSetString();
// add JARs from target package as repositories
// getPackageClasspath finds the list of jars I want to
 include for this webapp.
for (String jar : getPackageClasspath(targetPackage)) {
File file = new File(ENVIRONMENT_ROOT, jar);
// skip bad and unwanted JARs
if (allExcludedJars.contains(jar) || isBadJar(file))
 {
reallyExcludedJars.add(jar);
} else {
// TODO: HOW TO FIX ME??
addRepository(file.toURI().toString());
}
}
log.info(Context path \ + context.getPath() + \
 excluding JARs:  + reallyExcludedJars);
} catch (IOException e) {
throw new LifecycleException(
Problem setting classpath for context path \
 + context.getPath() + \,
e);
}

// getRepositoriesString() has been renamed to
 getLoaderRepositoriesString()...
log.info(Context path \ + context.getPath() + \ using
 classpath:  + getRepositoriesString());
} else {
log.warning(MyWebappLoader seems to be used outside of my
 environment. Delegating to parent.);
}

super.startInternal();
}

 Can the community help me figure out how to upgrade this for tomcat 8?
 
 JarResourceSet jrs = new JarResourceSet(Context.getResources(), /, 
 file.getAbsolutePath(), /);
 Context.getResources().addPostResources(jrs);

Bad idea. That will mount the contents of the JAR at the root of the web
application.

Mark


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



RE: [Tomcat8] What happened to WebappLoader.addRepository()?

2015-03-17 Thread Ed Rouse


 -Original Message-
 From: Pilkington, Simon [mailto:simo...@amazon.com]
 Sent: Tuesday, March 17, 2015 12:45 PM
 To: users@tomcat.apache.org
 Subject: [Tomcat8] What happened to WebappLoader.addRepository()?
 
 Hey tomcat users,
 
 The javadoc for WebappLoader still tells me to use addRepository(), but
 that method no longer exists. My team has implemented an extension of
 WebappLoader that looked like this:
 
 http://cp.mcafee.com/d/1jWVIq3zqb2rzydPhOCYrKrhKCqenTzhOe7cCQrFCzBZUQsL
 9ICQrFCzBZUQszxP1J6WpEVvd7aabPxLURrFUalAv3UYKrlAv3UYKrKXHXRTT-LPz5TCnA-
 LsKyev7szsQsIFICzBzBHEShhlKYPOEuvkzaT0QSyrjdTdTdAVPmEBCjGHrpZGSS9_M079R
 lJIOUXHBQaSPlFo01PlJIj_brfjVgT3WWxYs0nO6Hb1mKEv7wsrrFYq5U_dKc2WrWr9EVjb
 _6HtfelAv3UYK2FRlJI-
 Rrr4_U02rs7e3zpFr1dlrrdUQKCy01iuPd41flBLxW1EwDkQg0bV3lBwHnkfzSE80LRGQBe
 IiNEEd598S-UrI1Lf5-sL
 http://cp.mcafee.com/d/2DRPoAd3hJ5xdNN6VEVjudTdETjd7bXNEV73CjqdQPhO-
 YqenASjqdQPhO-
 YqehMVwSztcQsLCzB55VMTYqJQY5aOfxYundGOfxYundTtRZWXX_nVNyXPbOvnKnh7fzKhK
 qemkSjhONORQr8EGTupVkffGhBrwqrjdFCXCXCOsVHkiP9RlJI-
 Rrr4_U03AWGSSptXHBQaSPlFo01PlJIj_brfjVgT3WWxYs0nO6Hb1mKEv7wsrrFYq5U_dKc
 2WrWr9EVjb_6HtfelAv3UYK2FRlJI-
 Rrr4_U02rs7e3zpFr1dlrrdUQKCy01iuPd41flBLxW1EwDkQg0bV3lBwHnkfzSE80LRGQBe
 IiNEEd598S-UrHrI5
 
@Override
protected void startInternal() throws LifecycleException {
// validate the context, which is used for debugging messages
Context context;
{
Container container = getContainer();
if (container == null) {
throw new LifecycleException(Container is null?!);
}
if (!(container instanceof Context)) {
throw new LifecycleException(Container is not an
 instance of Context?!);
}
context = (Context) container;
}
 
if (ENVIRONMENT_ROOT != null  ENVIRONMENT_ROOT.length()  0) {
// validate targetPackage
if (null == targetPackage) {
throw new LifecycleException(
Missing required Loader attribute
 \targetPackage\ in Context configuration  +
context.getConfigFile());
}
 
try {
// Excluded jars are those already pulled in by tomcat.
SetString allExcludedJars = getAllExcludedJars();
SetString reallyExcludedJars = new HashSetString();
// add JARs from target package as repositories
// getPackageClasspath finds the list of jars I want to
 include for this webapp.
for (String jar : getPackageClasspath(targetPackage)) {
File file = new File(ENVIRONMENT_ROOT, jar);
// skip bad and unwanted JARs
if (allExcludedJars.contains(jar) || isBadJar(file))
 {
reallyExcludedJars.add(jar);
} else {
// TODO: HOW TO FIX ME??
addRepository(file.toURI().toString());
}
}
log.info(Context path \ + context.getPath() + \
 excluding JARs:  + reallyExcludedJars);
} catch (IOException e) {
throw new LifecycleException(
Problem setting classpath for context path \
 + context.getPath() + \,
e);
}
 
// getRepositoriesString() has been renamed to
 getLoaderRepositoriesString()...
log.info(Context path \ + context.getPath() + \ using
 classpath:  + getRepositoriesString());
} else {
log.warning(MyWebappLoader seems to be used outside of my
 environment. Delegating to parent.);
}
 
super.startInternal();
}
 
 Can the community help me figure out how to upgrade this for tomcat 8?

JarResourceSet jrs = new JarResourceSet(Context.getResources(), /, 
file.getAbsolutePath(), /);
Context.getResources().addPostResources(jrs);

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



Re: [Tomcat8] What happened to WebappLoader.addRepository()?

2015-03-17 Thread Mark Thomas
On 17/03/2015 16:45, Pilkington, Simon wrote:
 Hey tomcat users,
 
 The javadoc for WebappLoader still tells me to use addRepository(), but that 
 method no longer exists. My team has implemented an extension of WebappLoader 
 that looked like this:

snip/

  addRepository(file.toURI().toString());

snip/

 Can the community help me figure out how to upgrade this for tomcat 8?

Look at the new resources implementation [1].

You probably want to use
org.apache.catalina.webresources.FileResourceSet with an webappMount of
/WEB-INF/lib/name-of-jar.jar

Mark


[1] http://tomcat.apache.org/tomcat-8.0-doc/config/resources.html



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



Re: [Tomcat8] What happened to WebappLoader.addRepository()?

2015-03-17 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Simon,

On 3/17/15 12:45 PM, Pilkington, Simon wrote:
 The javadoc for WebappLoader still tells me to use addRepository(),
 but that method no longer exists. My team has implemented an
 extension of WebappLoader that looked like this:
 
 https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/loader/WebappLoader.html

 
https://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/loader/WebappLoader.html
 
 @Override protected void startInternal() throws LifecycleException
 { // validate the context, which is used for debugging messages 
 Context context; { Container container = getContainer(); if
 (container == null) { throw new LifecycleException(Container is
 null?!); } if (!(container instanceof Context)) { throw new
 LifecycleException(Container is not an instance of Context?!); } 
 context = (Context) container; }
 
 if (ENVIRONMENT_ROOT != null  ENVIRONMENT_ROOT.length()  0) { //
 validate targetPackage if (null == targetPackage) { throw new
 LifecycleException( Missing required Loader attribute
 \targetPackage\ in Context configuration  + 
 context.getConfigFile()); }
 
 try { // Excluded jars are those already pulled in by tomcat. 
 SetString allExcludedJars = getAllExcludedJars(); SetString
 reallyExcludedJars = new HashSetString(); // add JARs from target
 package as repositories // getPackageClasspath finds the list of
 jars I want to include for this webapp. for (String jar :
 getPackageClasspath(targetPackage)) { File file = new
 File(ENVIRONMENT_ROOT, jar); // skip bad and unwanted JARs if
 (allExcludedJars.contains(jar) || isBadJar(file)) { 
 reallyExcludedJars.add(jar); } else { // TODO: HOW TO FIX ME?? 
 addRepository(file.toURI().toString());


Try addURL().

 } } log.info(Context path \ + context.getPath() + \ excluding
 JARs:  + reallyExcludedJars); } catch (IOException e) { throw new
 LifecycleException( Problem setting classpath for context path \
 + context.getPath() + \, e); }
 
 // getRepositoriesString() has been renamed to
 getLoaderRepositoriesString()... log.info(Context path \ +
 context.getPath() + \ using classpath:  +
 getRepositoriesString()); } else { log.warning(MyWebappLoader
 seems to be used outside of my environment. Delegating to
 parent.); }
 
 super.startInternal(); }
 
 Can the community help me figure out how to upgrade this for tomcat
 8?

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJVCGiJAAoJEBzwKT+lPKRYEAMQAKQfIesZ/xJpQNeIZBlNJkLZ
TRDfBR0rgwcyPGnEOFklj90iIhh0VDcpe/StVzK7XI1/2MjeRCMfb6DdrAbz/lFh
mm5wOuBQ76eY8HqF7/BPX525rvaB89O5bs0dI7kLvtUHNn7trvcnD80YVvSB7g7Y
9tbbNIJGbCPkcqLnD6CLXJtYM0bXo17s8VeyRepqjmXkuKEdWutCDIE1BO1TAPi4
rMA5KesRTrpC289ZCwt8E6uD6DhKc5rGj+V0lrT3X0tLr8nzY70io+4uwoxQjfkQ
QBcO9lzDJWAchM1gx71+0KZCmSlmGR5pWHGt5ysfaSh/20dtB86Qtd3zg+Q22pfH
bakBde8c120PVez/sD9FlFElwKaC6DnBcNwUpfGa2c5RHJaRzpPh/Lhm1QbF1v7L
hmNmlz6C0fBy2N2bXH4p38sz+uP1nH+4TrgoH9gOCRnSe3WhjWyhljsllJQt77Oc
gtflvUqsBNtnOVt1OhViSlM6LLzqyKKj7SeagCn3ZuJ4o0MUODznXt+J4m24/gTT
VbThvj+IfDpvCupswhiosPq6ZIHy6Uz2Ki7BNwQGlFHsPpaSR/1fm/Bn1Nrghraw
jG5Q8yId1B+TeXvnRiZj2IfOkoFK2uY52nH6S8e7Vj2lt3D9PrsTjO6prfEcvSHF
9jX+M5GIgX7DAm5o9ox/
=xMdv
-END PGP SIGNATURE-

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



AW: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest Authentication problem

2015-03-17 Thread Sascha Skorupa
Rainer, thank you for this hint, but unfortunately, this feature is too new to 
be included in any current mod_jk linux package and building it from source it 
not an option for a production environment. Too bad because that is exactly 
what we need that.

Christopher, your suggestion sounds interesting. Would it be an option for 
future releases of tomcat?

Sascha

-Ursprüngliche Nachricht-
Von: Christopher Schultz [mailto:ch...@christopherschultz.net] 
Gesendet: Freitag, 13. März 2015 19:24
An: Tomcat Users List
Betreff: Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest 
Authentication problem

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Rainer,

On 3/13/15 12:15 PM, Rainer Jung wrote:
 Am 13.03.2015 um 16:28 schrieb Christopher Schultz:
 -BEGIN PGP SIGNED MESSAGE- Hash: SHA256
 
 Mark,
 
 On 3/12/15 1:13 PM, Mark Thomas wrote:
 On 12/03/2015 15:20, Sascha Skorupa wrote:
 Hi,
 
 here:
 
 http://grokbase.com/t/tomcat/users/13bvsbwb8s/multiple-servers-and-
 digest-authentication





 
the same problem is described and the recommended solution is to use
 sticky load balancing. But, the problem in a tomcat cluster is that 
 the session ID is generated after a successful authentication. The 
 first http response (401 with Authentication
 Header) does not contain a session ID.
 
 How should sticky load balancing be configured or how to enforce 
 session id generation before authentication?
 
 Most load-balancers have various options for doing this that don't 
 depend on the back-end server at all.
 
 Perhaps an option in Tomcat that will force the creation of a session 
 when a DIGEST authentication is requested might be useful. This would 
 tie e.g. mod_jk to the proper back-end server.
 
 I'm not sure how this could be done using mod_jk without such a 
 feature, or changes to mod_jk itself to annotate the request with the 
 chosen worker, which could then be converted into a cookie in order 
 to keep the node-hint associated with the client.
 
 Yes, mod_jk can help since version 1.2.38: Look for 
 set_session_cookie on 
 http://tomcat.apache.org/connectors-doc/reference/workers.html.
 Using that attribute you can let mod_jk set the cookie, if it doesn't 
 find one already set by Tomcat. You need to also set 
 session_cookie=JSESSIONID and session_cookie_path=/myapp where you 
 adjust myapp to your context path.

Oh, good: I had missed that feature. Thanks for pointing it out!

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJVAytTAAoJEBzwKT+lPKRYO9EP/1NnmcKmXYwYYvtnb97dMZmz
NI7GIaZYDhx1NLb7w5UFDrPNhaAvBDSvzmNxnhZPfdPcwUK93k95+KVymrpI49xh
wJ7wbBlFPJcB6coK35jwp0oZnfKbUyHFZ6Qr/r4fbrd57PDqCKGLc/6YicY11nm+
3EGCYHKe/B2orPNJvw+B5ZCm4cJFwh/VWespkAylCWbqJV1k882zG4MJEwZWgXdn
FBLggaCW1N5V6LNAhKiwyrrZrcV9TY3zoMI4Dd8M8yzq8MoTbUK2g2sYZh0LNm0d
0ZbcE07uBUgO5NamNk049vSK+yx0gfHmnL1Gst/jdQ23I8876cTYNCkJKyb0/uDq
x5nv2K+dYj1rDeak3j4PS35W+Z6C/SCyp8n3W2L16xtLYtDRQTYv4OTOv1oVTuA2
UueFMwnqRoJV24nLathp29RnjODK7shYce1JqShiAVXzyKSgAkWsu2J8V07txUjP
4v+E0LrWOGEimvHfrOYqdTmH+Ed6YEcttrYU2ddH1g2z4Hz9n+S+fsO2fQgLhY/S
V6RluOXfAlg6+IFEtW7DW2PzXuQxOHfKfIX3dlBDGrJGoYNFdYY+uaZO6TPyp7qR
UVO9BRA0Roxtpvn7TpJJjygjNXM7uac5MMeCJtA4KPd29PT0sxAnJv+NYpYJ1F35
XROKEh5OIpcNKOPxBoof
=w+jN
-END PGP SIGNATURE-

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



Re: java.lang.NullPointerException at org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536) when starting Embedded Tomcat Instance

2015-03-17 Thread Violeta Georgieva
Hi,

2015-03-17 15:16 GMT+02:00 Thusitha Thilina Dayaratne thusit...@wso2.com:

 Hi
 
  Hi Violeta
 
  Hi,
 
  2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne 
thusit...@wso2.com
 :
  
ERROR {org.apache.catalina.core.ApplicationDispatcher} -
Servlet.service() for servlet bridgeservlet threw exception
java.lang.NullPointerException
at
   
   
  
 

org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
at
   
 org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
at
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
at
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
   
snip/
   
I can't figure out the reason to get this NullPointerException.
Can someone help me out?
   
If we knew which version of Tomcat 8 you were using, someone could
  look
at the relevant source code to try to figure out what was going
on.
I'm using tomcat version *8.0.20*
  
   Browse to the sourcecode of v8.0.20 of tomcat here:
  
public TldResourcePath getTldResourcePath(String uri) {
return getOptions().getTldCache().getTldResourcePath(uri);
}
   Thanks for the quick response
  
Obviously either getOptions() or getTldCache() is returning null.
  
   I debug the code as you suggest and found that getTldCache() is null.
   In the code As I understand there are 2 point which set the *tldCache*
variable
   one is the setTldCache() method and other is
   public static TldCache getInstance(ServletContext servletContext) {
  
   if (servletContext == null) {
   throw new IllegalArgumentException(Localizer.getMessage(
  
  org.apache.jasper.compiler.TldCache.servletContextNull));
   }
   return (TldCache)
   servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
   }
 
 
 
  If you can attach a debugger try to see whether the code below is
 invoked:
 
  org.apache.jasper.servlet.JasperInitializer.onStartup(SetClass?,
  ServletContext) {
  .
  context.setAttribute(TldCache.SERVLET_CONTEXT_ATTRIBUTE_NAME,
  new TldCache(context,
 scanner.getUriTldResourcePathMap(),
  scanner.getTldResourcePathTaglibXmlMap()));
  
  }
  I have checked that as well. But that method didn't get hot when I'm
  debugging the source.
  what could be the reason?

 You wrote that you are running an embedded Tomcat. Is that true?
 In Tomcat 8, Jasper initialization is implemented as a standard
 ServletContainderInitializer (check Servlet specification).
 So you should ensure
 that org.apache.jasper.servlet.JasperInitializer.onStartup is invoked
 during web app startup

 Could someone tell me how can I make sure that this method get call during
 the web app startup?

You didn't tell us whether you are embedding Tomcat or not.
If you are embedding it which jar files from Tomcat distribution you are
using etc.
You can start debugging
with org.apache.catalina.startup.ContextConfig.webConfig()

- processServletContainerInitializers(sContext);

Regards,
Violeta


 Best Regards
 Thusitha



Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest Authentication problem

2015-03-17 Thread Rainer Jung

Hi Sascha,

Am 17.03.2015 um 13:02 schrieb Sascha Skorupa:

Rainer, thank you for this hint, but unfortunately, this feature is too new to 
be included in any current mod_jk linux package and building it from source it 
not an option for a production environment. Too bad because that is exactly 
what we need that.


are you using Apache 2.4? In that case I might have an alternative 
recipe for you.


Regards,

Rainer


Christopher, your suggestion sounds interesting. Would it be an option for 
future releases of tomcat?

Sascha

-Ursprüngliche Nachricht-
Von: Christopher Schultz [mailto:ch...@christopherschultz.net]
Gesendet: Freitag, 13. März 2015 19:24
An: Tomcat Users List
Betreff: Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest 
Authentication problem

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Rainer,

On 3/13/15 12:15 PM, Rainer Jung wrote:

Am 13.03.2015 um 16:28 schrieb Christopher Schultz:

-BEGIN PGP SIGNED MESSAGE- Hash: SHA256

Mark,

On 3/12/15 1:13 PM, Mark Thomas wrote:

On 12/03/2015 15:20, Sascha Skorupa wrote:

Hi,

here:

http://grokbase.com/t/tomcat/users/13bvsbwb8s/multiple-servers-and-
digest-authentication









the same problem is described and the recommended solution is to use

sticky load balancing. But, the problem in a tomcat cluster is that
the session ID is generated after a successful authentication. The
first http response (401 with Authentication
Header) does not contain a session ID.


How should sticky load balancing be configured or how to enforce
session id generation before authentication?


Most load-balancers have various options for doing this that don't
depend on the back-end server at all.


Perhaps an option in Tomcat that will force the creation of a session
when a DIGEST authentication is requested might be useful. This would
tie e.g. mod_jk to the proper back-end server.

I'm not sure how this could be done using mod_jk without such a
feature, or changes to mod_jk itself to annotate the request with the
chosen worker, which could then be converted into a cookie in order
to keep the node-hint associated with the client.


Yes, mod_jk can help since version 1.2.38: Look for
set_session_cookie on
http://tomcat.apache.org/connectors-doc/reference/workers.html.
Using that attribute you can let mod_jk set the cookie, if it doesn't
find one already set by Tomcat. You need to also set
session_cookie=JSESSIONID and session_cookie_path=/myapp where you
adjust myapp to your context path.


Oh, good: I had missed that feature. Thanks for pointing it out!

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJVAytTAAoJEBzwKT+lPKRYO9EP/1NnmcKmXYwYYvtnb97dMZmz
NI7GIaZYDhx1NLb7w5UFDrPNhaAvBDSvzmNxnhZPfdPcwUK93k95+KVymrpI49xh
wJ7wbBlFPJcB6coK35jwp0oZnfKbUyHFZ6Qr/r4fbrd57PDqCKGLc/6YicY11nm+
3EGCYHKe/B2orPNJvw+B5ZCm4cJFwh/VWespkAylCWbqJV1k882zG4MJEwZWgXdn
FBLggaCW1N5V6LNAhKiwyrrZrcV9TY3zoMI4Dd8M8yzq8MoTbUK2g2sYZh0LNm0d
0ZbcE07uBUgO5NamNk049vSK+yx0gfHmnL1Gst/jdQ23I8876cTYNCkJKyb0/uDq
x5nv2K+dYj1rDeak3j4PS35W+Z6C/SCyp8n3W2L16xtLYtDRQTYv4OTOv1oVTuA2
UueFMwnqRoJV24nLathp29RnjODK7shYce1JqShiAVXzyKSgAkWsu2J8V07txUjP
4v+E0LrWOGEimvHfrOYqdTmH+Ed6YEcttrYU2ddH1g2z4Hz9n+S+fsO2fQgLhY/S
V6RluOXfAlg6+IFEtW7DW2PzXuQxOHfKfIX3dlBDGrJGoYNFdYY+uaZO6TPyp7qR
UVO9BRA0Roxtpvn7TpJJjygjNXM7uac5MMeCJtA4KPd29PT0sxAnJv+NYpYJ1F35
XROKEh5OIpcNKOPxBoof
=w+jN
-END PGP SIGNATURE-


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



Re: java.lang.NullPointerException at org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536) when starting Embedded Tomcat Instance

2015-03-17 Thread Thusitha Thilina Dayaratne
Hi

 Hi Violeta

 Hi,

 2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne thusit...@wso2.com
:
 
   ERROR {org.apache.catalina.core.ApplicationDispatcher} -
   Servlet.service() for servlet bridgeservlet threw exception
   java.lang.NullPointerException
   at
  
  
 

org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
   at
  
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
   at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
   at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
   at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
  
   snip/
  
   I can't figure out the reason to get this NullPointerException.
   Can someone help me out?
  
   If we knew which version of Tomcat 8 you were using, someone could
 look
   at the relevant source code to try to figure out what was going on.
   I'm using tomcat version *8.0.20*
 
  Browse to the sourcecode of v8.0.20 of tomcat here:
 
   public TldResourcePath getTldResourcePath(String uri) {
   return getOptions().getTldCache().getTldResourcePath(uri);
   }
  Thanks for the quick response
 
   Obviously either getOptions() or getTldCache() is returning null.
 
  I debug the code as you suggest and found that getTldCache() is null.
  In the code As I understand there are 2 point which set the *tldCache*
   variable
  one is the setTldCache() method and other is
  public static TldCache getInstance(ServletContext servletContext) {
 
  if (servletContext == null) {
  throw new IllegalArgumentException(Localizer.getMessage(
 
 org.apache.jasper.compiler.TldCache.servletContextNull));
  }
  return (TldCache)
  servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
  }



 If you can attach a debugger try to see whether the code below is
invoked:

 org.apache.jasper.servlet.JasperInitializer.onStartup(SetClass?,
 ServletContext) {
 .
 context.setAttribute(TldCache.SERVLET_CONTEXT_ATTRIBUTE_NAME,
 new TldCache(context,
scanner.getUriTldResourcePathMap(),
 scanner.getTldResourcePathTaglibXmlMap()));
 
 }
 I have checked that as well. But that method didn't get hot when I'm
 debugging the source.
 what could be the reason?

You wrote that you are running an embedded Tomcat. Is that true?
In Tomcat 8, Jasper initialization is implemented as a standard
ServletContainderInitializer (check Servlet specification).
So you should ensure
that org.apache.jasper.servlet.JasperInitializer.onStartup is invoked
during web app startup

Could someone tell me how can I make sure that this method get call during
the web app startup?

Best Regards
Thusitha

On Tue, Mar 17, 2015 at 9:37 AM, Thusitha Thilina Dayaratne 
thusit...@wso2.com wrote:

 Hi Violeta,

 2015-03-16 15:33 GMT+02:00 Thusitha Thilina Dayaratne thusit...@wso2.com
 :
 
  Hi Violeta
 
  Hi,
 
  2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne 
 thusit...@wso2.com
 :
  
ERROR {org.apache.catalina.core.ApplicationDispatcher} -
Servlet.service() for servlet bridgeservlet threw exception
java.lang.NullPointerException
at
   
   
  
 

 org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
at
   
 org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
at
 org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
at
 org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
   
snip/
   
I can't figure out the reason to get this NullPointerException.
Can someone help me out?
   
If we knew which version of Tomcat 8 you were using, someone could
  look
at the relevant source code to try to figure out what was going on.
I'm using tomcat version *8.0.20*
  
   Browse to the sourcecode of v8.0.20 of tomcat here:
  
public TldResourcePath getTldResourcePath(String uri) {
return getOptions().getTldCache().getTldResourcePath(uri);
}
   Thanks for the quick response
  
Obviously either getOptions() or getTldCache() is returning null.
  
   I debug the code as you suggest and found that getTldCache() is null.
   In the code As I understand there are 2 point which set the *tldCache*
variable
   one is the setTldCache() method and other is
   public static TldCache getInstance(ServletContext servletContext) {
  
   if (servletContext == null) {
   throw new IllegalArgumentException(Localizer.getMessage(
  
  org.apache.jasper.compiler.TldCache.servletContextNull));
   }
   return (TldCache)
   servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
   }
 
 
 
  If you can attach a debugger try to see whether the code below is
 invoked:
 
  org.apache.jasper.servlet.JasperInitializer.onStartup(SetClass?,
  ServletContext) {
  .
  

Re: java.lang.NullPointerException at org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536) when starting Embedded Tomcat Instance

2015-03-17 Thread Thusitha Thilina Dayaratne
2015-03-17 15:16 GMT+02:00 Thusitha Thilina Dayaratne thusit...@wso2.com:

 Hi
 
  Hi Violeta
 
  Hi,
 
  2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne 
thusit...@wso2.com
 :
  
ERROR {org.apache.catalina.core.ApplicationDispatcher} -
Servlet.service() for servlet bridgeservlet threw exception
java.lang.NullPointerException
at
   
   
  
 

org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
at
   
 org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
at
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
at
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
   
snip/
   
I can't figure out the reason to get this NullPointerException.
Can someone help me out?
   
If we knew which version of Tomcat 8 you were using, someone could
  look
at the relevant source code to try to figure out what was going
on.
I'm using tomcat version *8.0.20*
  
   Browse to the sourcecode of v8.0.20 of tomcat here:
  
public TldResourcePath getTldResourcePath(String uri) {
return getOptions().getTldCache().getTldResourcePath(uri);
}
   Thanks for the quick response
  
Obviously either getOptions() or getTldCache() is returning null.
  
   I debug the code as you suggest and found that getTldCache() is null.
   In the code As I understand there are 2 point which set the *tldCache*
variable
   one is the setTldCache() method and other is
   public static TldCache getInstance(ServletContext servletContext) {
  
   if (servletContext == null) {
   throw new IllegalArgumentException(Localizer.getMessage(
  
  org.apache.jasper.compiler.TldCache.servletContextNull));
   }
   return (TldCache)
   servletContext.getAttribute(SERVLET_CONTEXT_ATTRIBUTE_NAME);
   }
 
 
 
  If you can attach a debugger try to see whether the code below is
 invoked:
 
  org.apache.jasper.servlet.JasperInitializer.onStartup(SetClass?,
  ServletContext) {
  .
  context.setAttribute(TldCache.SERVLET_CONTEXT_ATTRIBUTE_NAME,
  new TldCache(context,
 scanner.getUriTldResourcePathMap(),
  scanner.getTldResourcePathTaglibXmlMap()));
  
  }
  I have checked that as well. But that method didn't get hot when I'm
  debugging the source.
  what could be the reason?

 You wrote that you are running an embedded Tomcat. Is that true?
 In Tomcat 8, Jasper initialization is implemented as a standard
 ServletContainderInitializer (check Servlet specification).
 So you should ensure
 that org.apache.jasper.servlet.JasperInitializer.onStartup is invoked
 during web app startup

 Could someone tell me how can I make sure that this method get call during
 the web app startup?

You didn't tell us whether you are embedding Tomcat or not.
Thanks for response and I'm Sorry for missing the info in previous mail.
Yes I'm embedding tomcat version 8.0.20

If you are embedding it which jar files from Tomcat distribution you are
using etc.
I'm using following tomcat jars

   - tomcat-embed-core
   - tomcat-embed-jasper
   - tomcat-websocket-api
   - tomcat-embed-websocket
   - tomcat-jasper


You can start debugging
with org.apache.catalina.startup.ContextConfig.webConfig()

- processServletContainerInitializers(sContext);

Thanks
Regards
Thusitha

On Tue, Mar 17, 2015 at 6:56 PM, Violeta Georgieva miles...@gmail.com
wrote:

 Hi,

 2015-03-17 15:16 GMT+02:00 Thusitha Thilina Dayaratne thusit...@wso2.com
 :
 
  Hi
  
   Hi Violeta
  
   Hi,
  
   2015-03-16 15:07 GMT+02:00 Thusitha Thilina Dayaratne 
 thusit...@wso2.com
  :
   
 ERROR {org.apache.catalina.core.ApplicationDispatcher} -
 Servlet.service() for servlet bridgeservlet threw exception
 java.lang.NullPointerException
 at


   
  
 

 org.apache.jasper.JspCompilationContext.getTldResourcePath(JspCompilationContext.java:536)
 at

  org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
 at
 org.apache.jasper.compiler.Parser.parseDirective(Parser.java:469)
 at
 org.apache.jasper.compiler.Parser.parseElements(Parser.java:1430)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:139)

 snip/

 I can't figure out the reason to get this NullPointerException.
 Can someone help me out?

 If we knew which version of Tomcat 8 you were using, someone
 could
   look
 at the relevant source code to try to figure out what was going
 on.
 I'm using tomcat version *8.0.20*
   
Browse to the sourcecode of v8.0.20 of tomcat here:
   
 public TldResourcePath getTldResourcePath(String uri) {
 return getOptions().getTldCache().getTldResourcePath(uri);
 }
Thanks for the quick response
   
 Obviously either getOptions() or getTldCache() is returning null.
   
I debug the code as you suggest and found that 

AW: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest Authentication problem

2015-03-17 Thread Sascha Skorupa
Hi Rainer,

currently not (Apache 2.2) but it might be an option to upgrade the OS and the 
Apache if it leads to a solution.

Regards
sascha

-Ursprüngliche Nachricht-
Von: Rainer Jung [mailto:rainer.j...@kippdata.de] 
Gesendet: Dienstag, 17. März 2015 15:00
An: Tomcat Users List
Betreff: Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest 
Authentication problem

Hi Sascha,

Am 17.03.2015 um 13:02 schrieb Sascha Skorupa:
 Rainer, thank you for this hint, but unfortunately, this feature is too new 
 to be included in any current mod_jk linux package and building it from 
 source it not an option for a production environment. Too bad because that is 
 exactly what we need that.

are you using Apache 2.4? In that case I might have an alternative recipe for 
you.

Regards,

Rainer

 Christopher, your suggestion sounds interesting. Would it be an option for 
 future releases of tomcat?

 Sascha

 -Ursprüngliche Nachricht-
 Von: Christopher Schultz [mailto:ch...@christopherschultz.net]
 Gesendet: Freitag, 13. März 2015 19:24
 An: Tomcat Users List
 Betreff: Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest 
 Authentication problem

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA256

 Rainer,

 On 3/13/15 12:15 PM, Rainer Jung wrote:
 Am 13.03.2015 um 16:28 schrieb Christopher Schultz:
 -BEGIN PGP SIGNED MESSAGE- Hash: SHA256

 Mark,

 On 3/12/15 1:13 PM, Mark Thomas wrote:
 On 12/03/2015 15:20, Sascha Skorupa wrote:
 Hi,

 here:

 http://grokbase.com/t/tomcat/users/13bvsbwb8s/multiple-servers-and
 -
 digest-authentication






 the same problem is described and the recommended solution is to use
 sticky load balancing. But, the problem in a tomcat cluster is that 
 the session ID is generated after a successful authentication. The 
 first http response (401 with Authentication
 Header) does not contain a session ID.

 How should sticky load balancing be configured or how to enforce 
 session id generation before authentication?

 Most load-balancers have various options for doing this that don't 
 depend on the back-end server at all.

 Perhaps an option in Tomcat that will force the creation of a 
 session when a DIGEST authentication is requested might be useful. 
 This would tie e.g. mod_jk to the proper back-end server.

 I'm not sure how this could be done using mod_jk without such a 
 feature, or changes to mod_jk itself to annotate the request with 
 the chosen worker, which could then be converted into a cookie in 
 order to keep the node-hint associated with the client.

 Yes, mod_jk can help since version 1.2.38: Look for 
 set_session_cookie on 
 http://tomcat.apache.org/connectors-doc/reference/workers.html.
 Using that attribute you can let mod_jk set the cookie, if it doesn't 
 find one already set by Tomcat. You need to also set 
 session_cookie=JSESSIONID and session_cookie_path=/myapp where 
 you adjust myapp to your context path.

 Oh, good: I had missed that feature. Thanks for pointing it out!

 - -chris
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1
 Comment: GPGTools - http://gpgtools.org

 iQIcBAEBCAAGBQJVAytTAAoJEBzwKT+lPKRYO9EP/1NnmcKmXYwYYvtnb97dMZmz
 NI7GIaZYDhx1NLb7w5UFDrPNhaAvBDSvzmNxnhZPfdPcwUK93k95+KVymrpI49xh
 wJ7wbBlFPJcB6coK35jwp0oZnfKbUyHFZ6Qr/r4fbrd57PDqCKGLc/6YicY11nm+
 3EGCYHKe/B2orPNJvw+B5ZCm4cJFwh/VWespkAylCWbqJV1k882zG4MJEwZWgXdn
 FBLggaCW1N5V6LNAhKiwyrrZrcV9TY3zoMI4Dd8M8yzq8MoTbUK2g2sYZh0LNm0d
 0ZbcE07uBUgO5NamNk049vSK+yx0gfHmnL1Gst/jdQ23I8876cTYNCkJKyb0/uDq
 x5nv2K+dYj1rDeak3j4PS35W+Z6C/SCyp8n3W2L16xtLYtDRQTYv4OTOv1oVTuA2
 UueFMwnqRoJV24nLathp29RnjODK7shYce1JqShiAVXzyKSgAkWsu2J8V07txUjP
 4v+E0LrWOGEimvHfrOYqdTmH+Ed6YEcttrYU2ddH1g2z4Hz9n+S+fsO2fQgLhY/S
 V6RluOXfAlg6+IFEtW7DW2PzXuQxOHfKfIX3dlBDGrJGoYNFdYY+uaZO6TPyp7qR
 UVO9BRA0Roxtpvn7TpJJjygjNXM7uac5MMeCJtA4KPd29PT0sxAnJv+NYpYJ1F35
 XROKEh5OIpcNKOPxBoof
 =w+jN
 -END PGP SIGNATURE-

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



Re: Multiple SSL certificates on one Instance

2015-03-17 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Stefan,

On 3/16/15 5:03 PM, Stefan Frei wrote:
 2 points:
 
 configure the reverse proxy is simpler.

s/simpler/possible/

 tomcat may be harder to troubleshoot issues.

Tomcat can't even do SNI at this point.

 i would take the prxy to do that, in fact we use squid rev-proxy
 to solve exact the same problem.

It's nice not to have to introduce a reverse proxy unless it's
actually necessary. Tomcat should really support SNI.

- -chris

 2015-03-16 14:16 GMT+01:00 Mark Thomas ma...@apache.org:
 On 16/03/2015 12:53, Rory Kelly wrote:
 Hey guys,
 
 
 
 I’ve a bad feeling what I’m trying to do is impossible, and I’m
 going to have to implement a different solution. Been hunting
 for an answer, but couldn’t find anything definite.
 
 I’m running Tomcat 8.0.18,
 
 Java 1.7.0_75-b13,
 
 Ubuntu 14.04.
 
 
 
 I have multiple sites running on Virtual Hosts on the instance.
 For a bit of background, I am intending on creating a 2-server
 load balanced system using nginx as a balancer on virtual
 servers (Best I can do, given our hosting/not possible to move
 away from it)
 
 I need each site to be protected by its own SSL certificate,
 provided by the client for each site.
 
 
 
 Can I actually have multiple SSL certs with Tomcat Virtual
 Hosts, or am I going to have to go learn nginx/httpd and
 provide it that way?
 
 https://bz.apache.org/bugzilla/show_bug.cgi?id=57108
 
 Mark
 
 
 
 
 
 Thanks,
 
 Rory
 
 
 
 -

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

 
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org
 
-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJVCFARAAoJEBzwKT+lPKRYnSoQAI7II/iU2t/GrKj9F7c8suPr
InjFD2BhHWIGqAzWiKQAOmoozgqLuGX6ME/Qmxd69eEoOLQelq0/ZJCA+VuH/Epk
C5hMBflHwQPD9UHb98nxRzQ3FaXW2Jdh6qk1weYa696Ol/2cHabEs4MYaTHVlQvq
E8dV6R0dhE4cU08tft0KCyk/i+OgTmyJpC6fxqxXjgoduauiLE9owzErywojWy7d
PR7M/twuM5XGJBYY59oFDHZO0zrshMBxzHWmw1xHIMde5eDtlyeQo+xVzA7PiDpt
LHGi9U0SX8MPR1+Vl9EZ0LdKxvIvpduFPleBDWub85iGKBdMUAiuYaknD2hZGCxF
4rDlOVpQpuHp9Sxk9TqTRG7vYMQR5wJpTtnvyBnZm7ls0VkBXaR9IiG9/LtUUHEh
eVHux1XjYmDnnZb83FQ+C5QX2xDsJ53zjvtEgagEucMDWwf+cQwXCl1VLLemBHeF
wem0sR225hGmD+FDDE7dqYvAQLzi4JbTXpOU6JZYBJVAvG+zg3stCcQJHdjp82GV
bxSUlmE8jr3AWqNBhpOUdVkNbb0h8Eb6GU0in4TilD3AxAPwi5UOtpfFRE9mIm/F
r2fN9Pzx3DQGikl1X2rRkjStLtZDh1PuB6IMg26Sq4HXtDD6ZABhGouxOWnb/oBz
4gSd0Em4+w8qkGr7bZBq
=thve
-END PGP SIGNATURE-

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



Re: Migration from Tomcat6-Cluster to Tomcat7-Cluster: Digest Authentication problem

2015-03-17 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

Rainer,

On 3/17/15 11:12 AM, Rainer Jung wrote:
 Am 17.03.2015 um 15:40 schrieb Sascha Skorupa:
 Hi Rainer,
 
 currently not (Apache 2.2) but it might be an option to upgrade
 the OS and the Apache if it leads to a solution.
 
 OK. But think twice, whether it is better to just compile mod_jk
 from sources or do the big update.

+1

I find it hard to believe that you (or your NOC) would be willing to
upgrade the OS and the web server to use an alternative solution, but
not willing to upgrade to a newer version of single, specialized
module for the web server.

Note that you don't have to have a compiler on the target system; you
just need to be able to cross-compile to that test system (or do what
I do and have a spare server with identical architecture, etc.
available for module builds).

 Updating to 2.4 will bring many interesting achievements, but just
 for fixing this issue quickly it would be better to update mod_jk,
 even if this means switching to a non-OS-provided variant.

+1

Building is trivial.

 If you seriously plan the 2.4 update and you have a test system, I
 could provide you with the non-trivial workaround letting Apache
 set the cookie. You would need to thoroughly test this though.

- -chris

-BEGIN PGP SIGNATURE-
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJVCFHcAAoJEBzwKT+lPKRYOQAQAJnIlsepWBvZlO438/zwXIYM
WI0X3LspAUt1v1c0JOXagL5VUdZO68/euBV7rmoKaHvo11lEH5lFQ9M91unvRWer
d7AQZoTc1+VQDcnBrGDzw6M7jQqlKf2Y7Jadlj9TfNm68cwCYFhpan1Wcv/XCMpy
/1Q5j/gW77AdPNpAvtFGOXZ0HPbMpkC+ZpsfFjgpOrwUBPL195xpQXM5nJLoYpAa
7uR34FCAbIIR0Glho/IHqzadxrSBq3AEVZau1uiGi3t8BjuWcOfq85bMZ0dCGdl+
Hlj6wKaTpS6AJi9By5d0xbXkqu5wBY2qFgY6wNq/cHO/Js+svPPMtME7eUZiOPAY
t2dUszkzqw0JOEqTN0I1gr0cGVOhJYbHMAdCHrb15FtWACeQVHVK7ikI0GJvKMG3
8EUIW21go3ID4jHBpexMC23QZDKfDTIhzx9Ec300lxRbjkfzpTCEvu3mM36w6y7+
fsRPPkpY0KqFe25nYw/DZCMS4KeAZ5dZSQa3sQSYgpozP71UrRZJw2+cqdALj29Q
Ozru/eLGLAvJuOKbXgSMIBfEQugx8vTGzE60Db7e61thMPmyHXlHqi1+zKDnODej
g6kbQtNDhak+0AfI2oFbmvHGz+hN8bAJa62hA/3jDKiYphxwH2JpJW4qmcs7HI91
qRp/u8yrAe8S/UAc+x+2
=95gA
-END PGP SIGNATURE-

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



[Tomcat8] What happened to WebappLoader.addRepository()?

2015-03-17 Thread Pilkington, Simon
Hey tomcat users,

The javadoc for WebappLoader still tells me to use addRepository(), but that 
method no longer exists. My team has implemented an extension of WebappLoader 
that looked like this:

https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/loader/WebappLoader.html
https://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/loader/WebappLoader.html

   @Override
   protected void startInternal() throws LifecycleException {
   // validate the context, which is used for debugging messages
   Context context;
   {
   Container container = getContainer();
   if (container == null) {
   throw new LifecycleException(Container is null?!);
   }
   if (!(container instanceof Context)) {
   throw new LifecycleException(Container is not an instance of 
Context?!);
   }
   context = (Context) container;
   }

   if (ENVIRONMENT_ROOT != null  ENVIRONMENT_ROOT.length()  0) {
   // validate targetPackage
   if (null == targetPackage) {
   throw new LifecycleException(
   Missing required Loader attribute \targetPackage\ in 
Context configuration  +
   context.getConfigFile());
   }

   try {
   // Excluded jars are those already pulled in by tomcat.
   SetString allExcludedJars = getAllExcludedJars();
   SetString reallyExcludedJars = new HashSetString();
   // add JARs from target package as repositories
   // getPackageClasspath finds the list of jars I want to include 
for this webapp.
   for (String jar : getPackageClasspath(targetPackage)) {
   File file = new File(ENVIRONMENT_ROOT, jar);
   // skip bad and unwanted JARs
   if (allExcludedJars.contains(jar) || isBadJar(file)) {
   reallyExcludedJars.add(jar);
   } else {
   // TODO: HOW TO FIX ME??
   addRepository(file.toURI().toString());
   }
   }
   log.info(Context path \ + context.getPath() + \ excluding 
JARs:  + reallyExcludedJars);
   } catch (IOException e) {
   throw new LifecycleException(
   Problem setting classpath for context path \ + 
context.getPath() + \,
   e);
   }

   // getRepositoriesString() has been renamed to 
getLoaderRepositoriesString()...
   log.info(Context path \ + context.getPath() + \ using 
classpath:  + getRepositoriesString());
   } else {
   log.warning(MyWebappLoader seems to be used outside of my 
environment. Delegating to parent.);
   }

   super.startInternal();
   }

Can the community help me figure out how to upgrade this for tomcat 8?