用于在glassfish中生成会话ID的自定义类

时间:2014-06-12 14:36:40

标签: java configuration glassfish sessionid

我已经构建了一个实现com.sun.enterprise.util.uuid.UuidGenerator的类,我想用我的类替换GlassFish 2.1.1的默认会话ID生成器。

GlassFish在其GUI中有一个选项,即Configuration-> Web容器 - >管理器属性,并且有一个"会话ID生成器类名称"您声明自定义类以生成会话ID的字段。

问题在于我不知道我需要在哪个文件夹中放入类,以便GlassFish找到它。

我到目前为止所得到的只是日志:

Log Level SEVERE  
Logger  javax.enterprise.system.container.web  
Name-Value Pairs  _ThreadID=10;_ThreadName=main;_RequestID=6387aa6c-c226-4f09-bd87-66e10ec24744;  
Record Number 411  

Message ID  Unable to load session uuid generator MyUuidGenerator java.lang.ClassNotFoundException  

完成消息

MyUuidGenerator at com.sun.appserv.server.util.ASURLClassLoader.loadClass(ASURLClassLoader.java:129) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at com.sun.enterprise.web.MemoryStrategyBuilder.initializePersistenceStrategy(MemoryStrategyBuilder.java:99) at com.sun.enterprise.web.WebContainer.configureSessionManager(WebContainer.java:1945) at com.sun.enterprise.web.WebContainer.configureSessionSettings(WebContainer.java:1878) at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1528) at com.sun.enterprise.web.WebContainer.loadStandaloneWebModule(WebContainer.java:1052) at com.sun.enterprise.web.WebContainer.loadDefaultWebModules(WebContainer.java:1038) at com.sun.enterprise.web.WebContainer.start(WebContainer.java:868) at com.sun.enterprise.web.PEWebContainer.startInstance(PEWebContainer.java:790) at com.sun.enterprise.web.PEWebContainerLifecycle.onStartup(PEWebContainerLifecycle.java:84) at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:442) at com.sun.enterprise.server.ondemand.OnDemandServer.onStartup(OnDemandServer.java:120) at com.sun.enterprise.server.PEMain.run(PEMain.java:411) at com.sun.enterprise.server.PEMain.main(PEMain.java:338) 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 com.sun.enterprise.server.PELaunch.main(PELaunch.java:412)

2 个答案:

答案 0 :(得分:0)

该类必须位于GlassFish类路径中,因此您可以输入

$GLASSFISH_HOME/lib/

$GLASSFISH_HOME/domains/$YOUR_DOMAIN/lib/classes

答案 1 :(得分:0)

解决了它。需要使用您的会话ID生成类创建.jar并将.jar放在类路径中,然后在Configuration > Web Container > Manager Properties > Session ID Generator Class Name中说明没有前缀的类的名称。