【问题标题】:ClassNotFoundException when deploying Jetty server部署 Jetty 服务器时出现 ClassNotFoundException
【发布时间】:2021-02-07 17:49:56
【问题描述】:

我正在尝试部署一个 Jetty9 应用程序,我按照客户给出的一些松散的指示安装了该应用程序。我已经能够在端口8081 上启动服务器,当我进行curl localhost:8081 测试时,它一直给出404 错误。

然后我用以下内容设置/opt/jetty9/contexts/root.xml:

<?xml version="1.0"  encoding="ISO-8859-1"?>

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/</Set>
  <Set name="war">
    /opt/jetty9/myproj/myproj.war
  </Set>
  <Set name="virtualHosts">
      <Array type="java.lang.String">
        <Item>myproj.mydomain.com</Item>
      </Array>
  </Set>
</Configure>

这一切看起来都很好,但是当我启动服务器时,这是我得到的堆栈跟踪:

2021-02-07 12:40:00.536:INFO::main: Logging initialized @344ms to org.eclipse.jetty.util.log.StdErrLog
2021-02-07 12:40:00.717:INFO:oejs.Server:main: jetty-9.4.18.v20190429; built: 2019-04-29T20:42:08.989Z; git: e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 1.8.0_282-b08
2021-02-07 12:40:00.736:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///opt/jetty9/contexts/] at interval 1
2021-02-07 12:40:01.069:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=98ms
2021-02-07 12:40:01.215:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2021-02-07 12:40:01.215:INFO:oejs.session:main: No SessionScavenger set, using defaults
2021-02-07 12:40:01.216:INFO:oejs.session:main: node0 Scavenging every 660000ms
Loading config from:/opt/configuration.properties
Setting the system to DEBUG mode
java.io.FileNotFoundException: /opt/configuration.properties (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at com.cit.common.utils.ConfigurationManager.getContents(ConfigurationManager.java:243)
    at com.cit.common.utils.ConfigurationManager.readConfigContent(ConfigurationManager.java:256)
    at com.cit.common.utils.ConfigurationManager.<init>(ConfigurationManager.java:53)
    at com.cit.common.utils.ConfigurationManager.getInstance(ConfigurationManager.java:79)
    at com.cit.common.utils.DaemonManager.start(DaemonManager.java:22)
    at com.cit.common.utils.ServletListener.contextInitialized(ServletListener.java:69)
    at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:957)
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:922)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:365)
    at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:852)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:46)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:192)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:502)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:151)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:172)
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:436)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:65)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:610)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:529)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:392)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:313)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:145)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:576)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:238)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:167)
    at org.eclipse.jetty.server.Server.start(Server.java:418)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:119)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
    at org.eclipse.jetty.server.Server.doStart(Server.java:382)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1572)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1512)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1511)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:220)
    at org.eclipse.jetty.start.Main.start(Main.java:490)
    at org.eclipse.jetty.start.Main.main(Main.java:77)
2021-02-07 12:40:01.244:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@6895a785{myproj,/,file:///tmp/jetty-0.0.0.0-8081-myproj.war-_-myproj.mydomain.com-2499359659101806391.dir/webapp/,UNAVAILABLE,myproj.mydomain.com}{/opt/jetty9/myproj/myproj.war}
java.lang.NullPointerException
    at com.cit.common.utils.ConfigurationManager.<init>(ConfigurationManager.java:53)
    at com.cit.common.utils.ConfigurationManager.getInstance(ConfigurationManager.java:79)
    at com.cit.common.utils.DaemonManager.start(DaemonManager.java:22)
    at com.cit.common.utils.ServletListener.contextInitialized(ServletListener.java:69)
    at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:957)
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:922)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:365)
    at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:852)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:46)
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:192)
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:502)
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:151)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:172)
    at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:436)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:65)
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:610)
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:529)
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:392)
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:313)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:145)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:576)
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:238)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:167)
    at org.eclipse.jetty.server.Server.start(Server.java:418)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:119)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
    at org.eclipse.jetty.server.Server.doStart(Server.java:382)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1572)
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1512)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1511)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:220)
    at org.eclipse.jetty.start.Main.start(Main.java:490)
    at org.eclipse.jetty.start.Main.main(Main.java:77)
2021-02-07 12:40:01.256:INFO:oejs.AbstractConnector:main: Started ServerConnector@49ec71f8{HTTP/1.1,[http/1.1]}{0.0.0.0:8081}
2021-02-07 12:40:01.272:INFO:oejus.SslContextFactory:main: x509=X509@8f4ea7c(jetty,h=[],w=[]) for Server@436813f3[provider=null,keyStore=file:///opt/jetty9/etc/keystore,trustStore=file:///opt/jetty9/etc/keystore]
2021-02-07 12:40:01.273:INFO:oejus.SslContextFactory:main: x509=X509@74fe5c40(1,h=[],w=[]) for Server@436813f3[provider=null,keyStore=file:///opt/jetty9/etc/keystore,trustStore=file:///opt/jetty9/etc/keystore]
2021-02-07 12:40:01.322:INFO:oejs.AbstractConnector:main: Started ServerConnector@689604d9{SSL,[ssl, http/1.1]}{0.0.0.0:4430}
2021-02-07 12:40:01.322:INFO:oejs.Server:main: Started @1130ms

这里明显的问题是没有 /opt/configuration.properties... 但是我找不到任何文件甚至引用这个文件,或者实际上没有任何关于这个配置应该是什么及其内容的在线信息?我根本不知道jetty,或者实际上是java for web,我想通过部署这个应用程序来帮别人一个忙,但过去几天我一直在碰壁......任何指针都是真的赞赏。谢谢

【问题讨论】:

    标签: java eclipse jetty jetty-9


    【解决方案1】:

    从您发布的堆栈跟踪来看,在我看来,Jetty 已启动并正在启动 Web 应用程序。此 Web 应用程序配置了一些侦听器,并且侦听器正在尝试初始化 ConfigurationManager。

    所有这一切看起来你的中间件安装没问题,网络应用程序仍然需要去询问你的客户这是否与应用程序相关。

    【讨论】:

    • 是的,这与我得出的结论相同,目前正在等待确认。谢谢,祈祷我可以在他们确认后配置其他所有内容..
    猜你喜欢
    • 1970-01-01
    • 2013-05-29
    • 2013-11-02
    • 2014-05-28
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    相关资源
    最近更新 更多