oh my bad it was just for testing purpose as I have some issues with
the jsp classloader with the tomcat8 integration. (I will revert that)
As I have limited time currently, I will appreciate any help :-)

The problem is:


SEVERE: Servlet.service() for servlet [jsp] in context with path
[/multi-config] threw exception [java.lang.LinkageError: loader
constraint violation: when resolving method
"org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;"
the class loader (instance of org/apache/jasper/servlet/JasperLoader)
of the current class, org/apache/jsp/index_jsp, and the class loader
(instance of org/codehaus/plexus/classworlds/realm/ClassRealm) for
resolved class, org/apache/jasper/runtime/InstanceManagerFactory, have
different Class objects for the type
.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;
used in the signature] with root cause
java.lang.LinkageError: loader constraint violation: when resolving
method 
"org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;"
the class loader (instance of org/apache/jasper/servlet/JasperLoader)
of the current class, org/apache/jsp/index_jsp, and the class loader
(instance of org/codehaus/plexus/classworlds/realm/ClassRealm) for
resolved class, org/apache/jasper/runtime/InstanceManagerFactory, have
different Class objects for the type
.getInstanceManager(Ljavax/servlet/ServletConfig;)Lorg/apache/tomcat/InstanceManager;
used in the signature
at org.apache.jsp.index_jsp._jspInit(index_jsp.java:47)
at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49)
at 
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:180)
at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:335)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at 
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:534)
at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at 
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

To reproduce:

git clone https://github.com/apache/tomcat-maven-plugin.git
cd tomcat-maven-plugin
git checkout tc8.x
(or get the branch from svn)

mvn clean install -pl :tomcat8-maven-plugin -am -Prun-its

less tomcat8-maven-plugin/target/test-classes/tomcat-run-multi-config/foo.log

On 1 October 2014 21:53, Konstantin Kolinko <knst.koli...@gmail.com> wrote:
> 2014-10-01 9:31 GMT+04:00  <ol...@apache.org>:
>> Author: olamy
>> Date: Wed Oct  1 05:31:10 2014
>> New Revision: 1628603
>>
>> URL: http://svn.apache.org/r1628603
>> Log:
>> bump version to 3.0-SNAPSHOT
>>
>> Modified:
>>     tomcat/maven-plugin/branches/tc8.x/common-tomcat-maven-plugin/pom.xml
>>     tomcat/maven-plugin/branches/tc8.x/pom.xml
>>     tomcat/maven-plugin/branches/tc8.x/tomcat-maven-archetype/pom.xml
>>     tomcat/maven-plugin/branches/tc8.x/tomcat-maven-plugin-it/pom.xml
>>     tomcat/maven-plugin/branches/tc8.x/tomcat6-maven-plugin/pom.xml
>>     tomcat/maven-plugin/branches/tc8.x/tomcat7-maven-plugin/pom.xml
>>     tomcat/maven-plugin/branches/tc8.x/tomcat7-war-runner/pom.xml
>>     tomcat/maven-plugin/branches/tc8.x/tomcat8-maven-plugin/pom.xml
>>     
>> tomcat/maven-plugin/branches/tc8.x/tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/run/RunMojo.java
>
> A change to RunMojo.java has crawled in. It is unrelated to version
> bumps in pom.xml files.
>
> My concern is that it is a non-trivial change that is not mentioned in
> commit message.
>
>>     tomcat/maven-plugin/branches/tc8.x/tomcat8-war-runner/pom.xml
>>
>> Modified: 
>> tomcat/maven-plugin/branches/tc8.x/common-tomcat-maven-plugin/pom.xml
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/maven-plugin/branches/tc8.x/common-tomcat-maven-plugin/pom.xml?rev=1628603&r1=1628602&r2=1628603&view=diff
>> ==============================================================================
>> --- tomcat/maven-plugin/branches/tc8.x/common-tomcat-maven-plugin/pom.xml 
>> (original)
>> +++ tomcat/maven-plugin/branches/tc8.x/common-tomcat-maven-plugin/pom.xml 
>> Wed Oct  1 05:31:10 2014
>> @@ -24,7 +24,7 @@
>>    <parent>
>>      <artifactId>tomcat-maven-plugin</artifactId>
>>      <groupId>org.apache.tomcat.maven</groupId>
>> -    <version>2.3-SNAPSHOT</version>
>> +    <version>3.0-SNAPSHOT</version>
>>    </parent>
>>    <artifactId>common-tomcat-maven-plugin</artifactId>
>>    <name>Apache Tomcat Maven Plugin :: Common API</name>
>
> (...)
>
>> Modified: 
>> tomcat/maven-plugin/branches/tc8.x/tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/run/RunMojo.java
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/maven-plugin/branches/tc8.x/tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/run/RunMojo.java?rev=1628603&r1=1628602&r2=1628603&view=diff
>> ==============================================================================
>> --- 
>> tomcat/maven-plugin/branches/tc8.x/tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/run/RunMojo.java
>>  (original)
>> +++ 
>> tomcat/maven-plugin/branches/tc8.x/tomcat8-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat8/run/RunMojo.java
>>  Wed Oct  1 05:31:10 2014
>> @@ -20,6 +20,7 @@ package org.apache.tomcat.maven.plugin.t
>>
>>  import org.apache.catalina.Context;
>>  import org.apache.catalina.WebResource;
>> +import org.apache.catalina.WebResourceRoot;
>>  import org.apache.catalina.WebResourceSet;
>>  import org.apache.catalina.loader.WebappLoader;
>>  import org.apache.catalina.webresources.EmptyResource;
>> @@ -339,10 +340,13 @@ public class RunMojo
>>
>>              getLog().debug( "classLoaderEntriesCalculator urls: " + urls );
>>
>> -            final URLClassLoader urlClassLoader = new URLClassLoader( 
>> urls.toArray( new URL[urls.size()] ) );
>> +            final URLClassLoader urlClassLoader = new URLClassLoader( 
>> urls.toArray( new URL[urls.size()] ), //
>> +                                                                      
>> Thread.currentThread().getContextClassLoader() );
>>
>>              final ClassRealm pluginRealm = getTomcatClassLoader();
>>
>> +            final WebResourceRoot previous = context.getResources();
>> +
>>              context.setResources(
>>                  new MyDirContext( new File( 
>> project.getBuild().getOutputDirectory() ).getAbsolutePath(), //
>>                                    getPath(), //
>> @@ -351,6 +355,13 @@ public class RunMojo
>>                      @Override
>>                      public WebResource getClassLoaderResource( String path )
>>                      {
>> +
>> +                        if (previous.getState().isAvailable())
>> +                        {
>> +                            WebResource webResource = 
>> previous.getClassLoaderResource( path );
>> +                            log.debug( "foo" );
>> +                        }
>> +
>>                          log.debug( "RunMojo#getClassLoaderResource: " + 
>> path );
>>                          URL url = urlClassLoader.getResource( 
>> StringUtils.removeStart( path, "/" ) );
>>                          // search in parent (plugin) classloader
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>



-- 
Olivier Lamy
http://twitter.com/olamy | http://linkedin.com/in/olamy

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

Reply via email to