Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Custom SessionHandler in Jetty

Thank you for the quick response. Your guessing right, the session handler is located within the project.

I followed your advice and exported the custom sessionhandler to a jar file ("jar -cf myhandler-0.1-jar [Class]"). Then I manually installed the jar to my local repository and added it as a dependency to the project. I verfied that the dependency was found and loaded by turning on the maven debug options. Still, I'm getting the same error. Here's the full stacke trace:


Failed to execute goal org.mortbay.jetty:jetty-maven-plugin:7.3.1.v20110307:run-exploded (default-cli) on project : Unable to parse configuration of mojo org.mortbay.jetty:jetty-maven-plugin:7.3.1.v20110307:run-exploded for parameter sessionHandler: ClassNotFoundException: Class name which was explicitly given in configuration using 'implementation' attribute: 'net.synchronite.jetty.SessionHandler' cannot be loaded -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.mortbay.jetty:jetty-maven-plugin:7.3.1.v20110307:run-exploded (default-cli) on project : Unable to parse configuration of mojo org.mortbay.jetty:jetty-maven-plugin:7.3.1.v20110307:run-exploded for parameter sessionHandler: ClassNotFoundException: Class name which was explicitly given in configuration using 'implementation' attribute: 'net.synchronite.jetty.SessionHandler' cannot be loaded
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:221)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.mortbay.jetty:jetty-maven-plugin:7.3.1.v20110307:run-exploded for parameter sessionHandler: ClassNotFoundException: Class name which was explicitly given in configuration using 'implementation' attribute: 'net.synchronite.jetty.SessionHandler' cannot be loaded
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:597)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:529)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:92)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: ClassNotFoundException: Class name which was explicitly given in configuration using 'implementation' attribute: 'net.synchronite.jetty.SessionHandler' cannot be loaded
    at org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter.getClassForImplementationHint(AbstractConfigurationConverter.java:70)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration(ObjectWithFieldsConverter.java:80)
    at org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.configure(ComponentValueSetter.java:278)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:151)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration(ObjectWithFieldsConverter.java:89)
    at org.codehaus.plexus.component.configurator.converters.ComponentValueSetter.configure(ComponentValueSetter.java:331)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:151)
    at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:56)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:567)
    ... 22 more
Caused by: java.lang.ClassNotFoundException: net.synchronite.jetty.SessionHandler
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
    at org.codehaus.plexus.component.configurator.converters.AbstractConfigurationConverter.getClassForImplementationHint(AbstractConfigurationConverter.java:61)
    ... 30 more



The relevant secrtion in the pom looks like this:
                  
<webAppConfig>
    <contextPath>/</contextPath>
    <extraClasspath>D:\myhandler-0.1.jar</extraClasspath>
    <sessionHandler implementation="net.synchronite.jetty.SessionHandler">
        <sessionManager implementation="net.synchronite.jetty.SessionManager">
        </sessionManager>
     </sessionHandler>
 </webAppConfig>


Is there any other way of registering my own session handler in Jetty 7.3.1? Maybe using a context listener?

Thanks for your help!




-----Ursprüngliche Nachricht-----
Von: "Jesse McConnell" <jesse.mcconnell@xxxxxxxxx>
Gesendet: 06.07.2011 22:43:53
An: "JETTY user mailing list" <jetty-users@xxxxxxxxxxx>
Betreff: Re: [jetty-users] Custom SessionHandler in Jetty

>Where is the session handler located? I suspect you need to register
>it as a dependency of the jetty-maven-plugin (since that looks to be
>your usage scenario here). That would involve using <dependency> tags
>in the plugin decl.
>
>But this is likely a pretty typical classloader issue. I suspect your
>trying to use a class that is in the project itself that your loading
>up the jetty-maven-plugin from and its just not exposed to the plugin
>classloader like that.
>
>cheers,
>jesse
>
>--
>jesse mcconnell
>jesse.mcconnell@xxxxxxxxx
>
>
>
>On Wed, Jul 6, 2011 at 15:28, Christian2M <Christian2M@xxxxxx> wrote:
>> I'm having a problem trying to register a self-implemented SessionHandler
>> for my Web Application. I have tried adding the session handler two ways
>> without success:
>>
>> 1) Modifying the pom.xml
>>
>> <extraClasspath>${basedir}/target/mywebapp/WEB-INF/classes/</extraClasspath>
>> <sessionHandler implementation="com.example.session.MySessionHandler">
>>     <sessionManager implementation="com.example.session.MySessionManager">
>>     </sessionManager>
>> </sessionHandler>
>>
>> 2) Modifying the jetty.xml
>>
>> <Set name="extraClasspath">WEB-INF/classes/</Set>
>> <Set name="setSessionHandler">
>>     <New class="org.eclipse.jetty.server.session.SessionHandler">
>>         <Arg>
>>              <New class="net.synchronite.proxy.SynchroniteSessionManager"
>> />
>>          </Arg>
>>      </New>
>>  </Set>
>>
>> In both cases I get a ClassNotFoundException (see below). What am I missing?
>>
>> ...
>> Caused by: java.lang.ClassNotFoundException:
>> net.synchronite.proxy.SynchroniteSessionHandler
>>        at
>> org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFir
>> stStrategy.java:50)
>>        at
>> org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:2
>> 44)
>>        at
>> org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:2
>> 30)
>>        at
>> org.codehaus.plexus.component.configurator.converters.AbstractConfigurationC
>> onverter.getClassForImplementationHint(AbstractConfigurationConverter.java:6
>> 1)
>>
>>
>>
>>
>>
>> _______________________________________________
>> jetty-users mailing list
>> jetty-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>>
>_______________________________________________
>jetty-users mailing list
>jetty-users@xxxxxxxxxxx
>https://dev.eclipse.org/mailman/listinfo/jetty-users


___________________________________________________________
Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die
Toolbar eingebaut! http://produkte.web.de/go/toolbar


Back to the top