我最近将我的码头服务器升级到9.4.8 . 升级后我尝试在我的应用程序上执行'jettyRun'命令时出现以下错误:
12:27:58.464 [main] INFO org.eclipse.jetty.util.log - 记录初始化@ 3707ms到org.eclipse.jetty.util.log.Slf4jLog 12:28:01.854 [main] INFO org.eclipse.jetty .server.Server - jetty-9.4.8.v20171121,build timestamp:2017-11-22T02:57:37 05:30,git hash:82b8fb23f757335bb3329d540ce37a2a2615f0a8 12:28:01.948 [main] INFO org.akhikhl.gretty.JettyConfigurerImpl - 使用文件配置/ id-factory-collab:/ H:/git/uprgade/fc-parent/fc-web/build/jetty-env.xml 12:28:01.995 [main] WARN org.eclipse.jetty.xml . XmlConfiguration - FCTIDnone上的配置错误%% name %% 12:28:02.011 [main] WARN org.eclipse.jetty.xml.XmlConfiguration - FCTIDnone上的配置错误%% name %% 12:28:02.011 [main] WARN组织 . eclipse.jetty.webapp.WebAppContext - 上下文启动失败oagJettyWebAppContext @ 486bc9a4 {/ fc,file:/// H:/ git / uprgade / fc-parent / fc-web / build / inplaceWebapp /,UNAVAILABLE} java.lang .NoSuchMethodException:java.lang.Class.getMethod上的org.eclipse.jetty.server.session.SessionHandler.getSessionManager() s.java:1786)~ [na:1.8.0_162] at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.get(XmlConfiguration.java:740)~ [jetty-xml-9.4.8.v20171121.jar:9.4 .8.v20171121]在org.eclipse的org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.configure(XmlConfiguration.java:471)〜[jetty-xml-9.4.8.v20171121.jar:9.4.8.v20171121] orjet.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration中的.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.get(XmlConfiguration.java:745)~ [jetty-xml-9.4.8.v20171121.jar:9.4.8.v20171121] . 在org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.configure(XmlConfiguration.java:351)上配置(XmlConfiguration.java:471)〜[jetty-xml-9.4.8.v20171121.jar:9.4.8.v20171121]〜 [jetty-xml-9.4.8.v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:296)〜[jetty-xml-9.4.8.v20171121 . jar:9.4.8.v20171121] org.eclipse.jetty.xml.XmlConfiguration $ configure.call(Unknown Source)〜[na:na] at org.codehaus.groovy . runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)[groovy -2.4.11.jar:2.4.11] org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCajava:125)[groovy-2.4.11.jar:2.4.11] at org.akhikhl.gretty . JettyConfigurerImpl.applyContextConfigFile(JettyConfigurerImpl.groovy:54)〜[gretty-runner-jetty94-2.0.0.jar:na] at org.akhikhl.gretty.JettyConfigurer $ applyContextConfigFile $ 10.call(Unknown Source)〜[na:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite . java:113)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)[groovy-2.4.11.jar:2.4.11 ] org.akhikhl.gretty.JettyServerConfigurer.configureWithBaseResource(JettyServerConfigurer.groovy:33)〜[g retty-runner-jetty-2.0.0.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[na:1.8.0_162] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜 [na:1.8.0_162] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_162] at java.lang.reflect.Method.invoke(Method.java:498)〜[na :1.8.0_162] org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)[groovy-2.4.11.jar:2.4.11] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java: 325)[groovy-2.4.11.jar:2.4.11]在groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)[groovy-2.4.11.jar:2.4.11] at groovy.lang.MetaClassImpl . invokeMethod(MetaClassImpl.java:1080)[groovy-2.4.11.jar:2.4.11] at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)[groovy-2.4.11.jar:2.4.11] at at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1087)[groovy-2.4.11.jar:2.4.11] at groovy.lang.MetaClassImpl.invokeMethod(MetaClas sImpl.java:1022)[groovy-2.4.11.jar:2.4.11] at groovy.lang.Closure.call(Closure.java:414)〜[groovy-2.4.11.jar:2.4.11] at groovy .lang.Closure.call(Closure.java:430)〜[groovy-2.4.11.jar:2.4.11]在groovy.lang.Closure $ call $ 0.call(Unknown Source)〜[na:na] at atorg.codehaus.groovy.runtisite.CallSiteArray.defaultCall(CallSiteArray.java:48)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: 113)[groovy-2.4.11.jar:2.4.11]在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)[groovy-2.4.11.jar:2.4.11] at org.akhikhl.gretty.WebInfConfigurationEx.unpack(WebInfConfigurationEx.groovy:46)〜[gretty-runner-jetty94-2.0.0.jar:na] at org.eclipse.jetty.webapp.WebInfConfiguration.preConfigure(WebInfConfiguration.java:154 )〜[jetty-webapp-9.4.8.v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:506)〜[jetty-webapp-9.4.8 . v20171121.jar:9.4.8.v20171121]在org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:544)〜[jetty-webapp-9.4.8.v20171121.jar:9.4.8.v20171121] at at org.akhikhl.gretty.JettyWebAppContext.super $ 10 $ doStart(JettyWebAppContext.groovy)[gretty-runner-jetty94-2.0.0.jar:na] at sun.reflect.Nat在Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java)的sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_162]的iveMethodAccessorImpl.invoke0(本地方法)〜[na:1.8.0_162] :43)〜[na:1.8.0_162] at java.lang.reflect.Method.invoke(Method.java:498)〜[na:1.8.0_162] at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod) .java:93)[groovy-2.4.11.jar:2.4.11] at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)[groovy-2.4.11.jar:2.4.11] at groovy.lang .MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132)[groovy-2.4.11 . jar:2.4.11] org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:152)[groovy-2.4.11.jar:2.4.11] at org.akhikhl.gretty.JettyWebAppContext.doStart(JettyWebAppContext .groovy:44)[gretty-runner-jetty94-2.0.0.jar:na] a t org.eclipse.jetty.util.compostractLifeCycle.start(AbstractLifeCycle.java:68)[jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.util.component.ContainerLifeCycle .start(ContainerLifeCycle.java:133)[jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:115)[ jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)[jetty-server-9.4.8.v20171121 . jar:9.4.8.v20171121] org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167)[jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121] at org org.eclipse.jetty.util.component.ContainerLifeCycle中的.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)[jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] .start(ContainerLifeCycle.java:133)[jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.serv er.Server.start(Server.java:418)[jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java: 107)[jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)[jetty-server-9.4.8] .v20171121.jar:9.4.8.v20171121] org.eclipse.jetty.server.Server.doStart(Server.java:385)[jetty-server-9.4.8.v20171121.jar:9.4.8.v20171121] at at在org.eclipse.jetty.util.component上的org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)[jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] . LifeCycle $在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)开始$ 0.call(未知来源)[jetty-util-9.4.8.v20171121.jar:9.4.8.v20171121] [groovy-2.4.11.jar:2.4.11] org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)[groovy-2.4.11.jar:2.4.11] at org . codehaus.groovy.runtime.call site.AbstractCallSite.call(AbstractCallSi:117)[groovy-2.4.11.jar:2.4.11] at org.akhikhl.gretty.JettyServerManager.startServer(JettyServerManager.groovy:45)[gretty-runner-jetty-2.0.0 .jar:na] at org.akhikhl.gretty.ServerManager $ startServer $ 0.call(Unknown Source)[gretty-runner-2.0.0.jar:na] at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall( CallSiteArray.java:48)[groov.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)[groovy-2.4.11.jar:2.4.11]在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)[groovy-2.4.11.jar:2.4.11] . akhikhl.gretty.Runner.run(Runner.groovy:117)[gretty-runner-2.0.0.jar:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)〜[na:1.8.0_162] at sun . 在java.lang.reflect的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_162]的reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_162] . 在org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite的Method.invoke(Method.java:498)〜[na:1.8.0_162] $ PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)[groovy-2.4.11.jar: 2.4.11] org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.callsite.CallSiteArray .defaultCall(CallSiteArray.java:48)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.ca llsite.AbstractCallSite.call(AbstractCallSite.java:113)[groovy-2.4.11.jar:2.4.11] at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)[groovy-2.4 .11.jar:2.4.11] org.akhikhl.gretty.Runner.main(Runner.groovy:44)[gretty-runner-2.0.0.jar:na]
这是jetty-env.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Set name="contextPath">/fc</Set>
<Set name="overrideDescriptor">build/override-web.xml</Set>
<Get name="sessionHandler">
<Get name="sessionManager">
<Set name="sessionCookie">FCTID</Set>
<Set name="sessionIdPathParameterName">none</Set>
<Set name="sessionIdManager">
<New class="org.eclipse.jetty.server.session.HashSessionIdManager">
<Set name="workerName">%%name%%</Set>
</New>
</Set>
</Get>
</Get>
</Configure>
有人可以帮忙解决这个问题
1 回答
Servlet 3.1改变了Session配置 .
一旦你击中Jetty 9.x,你应该更改为使用javax.servlet.SessionCookieConfig .
示例:让我们先看看这些设置......
这些设置了一个cookie名称并试图不使用/禁用URL跟踪模式(这种技术在Servlet 3.1中没有任何作用)顺便说一下
in embedded-jetty:
or used in a ServletContextListener:
or using WEB-INF/web.xml:
About HashSessionIdManager:
旧的
HashSessionIdManager
是一个用于测试目的的"In Memory"会话ID管理器,它并不意味着在 生产环境 意义上使用 .只有1个会话ID管理器,称为
DefaultSessionIdManager
.它也是Server组件,而不是WebApp特定组件 .
About workerName:
您需要在服务器级别设置
workerName
,或使用JETTY_WORKER_INSTANCE
系统环境变量在启动时为该服务器设置workerName后缀 .workerName
以"node"
开头,将取JETTY_WORKER_INSTANCE
值并追加它,产生workerName = "node" + JETTY_WORKER_INSTANCE;
.分配
workerName
时需要考虑的一些事项 .这是服务器级配置 .
对于服务器上的所有WebApp,它都是相同的
workerName
.名称中只能包含字母或数字 . (没有空格,没有标点符号,不允许其他字符)
根据WebApp选择的会话数据存储或数据缓存,它可以使用这些配置中的群集名称作为前缀 .
Some other observations:
你的
jetty-env.xml
正在尝试做jetty-env.xml
无法处理的事情 .在WebApp生命周期中更改
jetty-env.xml
中的上下文路径为时已晚 .在查看
jetty-env.xml
之前,已经分配,读取和使用了overrideDescriptor
. 此操作不会导致任何更改,因为它在WebApp生命周期中为时已晚,无法在_1514911中更改此值 .这两个设置都应该移动到
${jetty.base}/webapps/<context>.xml
文件 .一旦完成移动这两个设置,并更新以使用
javax.servlet.SessionCookieConfig
,您将不再拥有jetty-env.xml
.