- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的带有 spring 的 java web 应用程序。然后我添加了
<dependency>
<groupId>org.web3j</groupId>
<artifactId>core</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.web3j</groupId>
<artifactId>crypto</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>org.web3j</groupId>
<artifactId>abi</artifactId>
<version>4.2.0</version>
</dependency>
到 pom.xml
现在,当我执行 mvn jetty:run
时,我得到了(几分钟后打印)
[WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@4784efd9{/crowdfunding,file:/C:/Users/d/eclipse-jee-workspace/crowdfunding/src/main/webapp/,STARTING}{file:/C:/Users/d/eclipse-jee-workspace/crowdfunding/src/main/webapp/}
java.lang.Exception: Timeout scanning annotations
at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations (AnnotationConfiguration.java:577)
at org.eclipse.jetty.annotations.AnnotationConfiguration.configure (AnnotationConfiguration.java:447)
我的浏览器出现 503 错误
最佳答案
默认扫描将等待 60 秒(1 分钟)来扫描所有 WEB-INF/classes
和WEB-INF/lib/*.jar
文件。
这可以配置得更长。但如果已经花了那么长时间那么你可能已经......
WEB-INF/lib
条目(您也没有告诉我们这一点)WEB-INF/lib
之一出现错误条目(一个错误的 jar 文件,实际上很常见)jetty-home
使用中更常见)WebAppContext
的配置使用自定义类加载器(不推荐这样做,如果您确实有这个,那么您就得靠自己了,因为下面的所有内容都假设一个普通的 WebAppClassloader)WebAppContext
的配置反转 Servlet 标准父加载器优先级(如果您设置了此 setParentLoaderPriority()
,则注释掉该调用并重试)假设您有错误的 jar 文件或有冲突的依赖项。
这 3 个依赖项有什么作用?
$ mvn dependency:tree
...(snip)...
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ huge-war ---
[INFO] org.eclipse.jetty.demo:huge-war:war:1.0-SNAPSHOT
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
[INFO] +- org.web3j:core:jar:4.2.0:compile
[INFO] | +- org.web3j:tuples:jar:4.2.0:compile
[INFO] | +- com.github.jnr:jnr-unixsocket:jar:0.21:compile
[INFO] | | +- com.github.jnr:jnr-ffi:jar:2.1.9:compile
[INFO] | | | +- com.github.jnr:jffi:jar:1.2.17:compile
[INFO] | | | +- com.github.jnr:jffi:jar:native:1.2.16:runtime
[INFO] | | | +- org.ow2.asm:asm:jar:5.0.3:compile
[INFO] | | | +- org.ow2.asm:asm-commons:jar:5.0.3:compile
[INFO] | | | +- org.ow2.asm:asm-analysis:jar:5.0.3:compile
[INFO] | | | +- org.ow2.asm:asm-tree:jar:5.0.3:compile
[INFO] | | | +- org.ow2.asm:asm-util:jar:5.0.3:compile
[INFO] | | | +- com.github.jnr:jnr-a64asm:jar:1.0.0:compile
[INFO] | | | \- com.github.jnr:jnr-x86asm:jar:1.0.2:compile
[INFO] | | +- com.github.jnr:jnr-constants:jar:0.9.11:compile
[INFO] | | +- com.github.jnr:jnr-enxio:jar:0.19:compile
[INFO] | | \- com.github.jnr:jnr-posix:jar:3.0.47:compile
[INFO] | +- com.squareup.okhttp3:okhttp:jar:3.8.1:compile
[INFO] | | \- com.squareup.okio:okio:jar:1.13.0:compile
[INFO] | +- com.squareup.okhttp3:logging-interceptor:jar:3.8.1:compile
[INFO] | +- io.reactivex.rxjava2:rxjava:jar:2.2.2:compile
[INFO] | | \- org.reactivestreams:reactive-streams:jar:1.0.2:compile
[INFO] | +- org.java-websocket:Java-WebSocket:jar:1.3.8:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.5:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.8.5:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] +- org.web3j:crypto:jar:4.2.0:compile
[INFO] | +- org.web3j:rlp:jar:4.2.0:compile
[INFO] | \- org.web3j:utils:jar:4.2.0:compile
[INFO] | \- org.bouncycastle:bcprov-jdk15on:jar:1.60:compile
[INFO] \- org.web3j:abi:jar:4.2.0:compile
unixsocket 类在 WebApp 中将会出现问题,因为 Servlet 容器引入的类加载器隔离和各种保护意味着这些 native 类/库在从 ServletContext 的锁定环境中执行时将无法工作。
但这不会阻止 Web 应用程序启动,只会阻止运行时的 IPC/UnixSocket 行为。
我还看到org.ow2.asm:asm:jar:5.0.3:compile
,这是在旧的一侧。
Jetty 附带 asm 7.0
$ ls -la ~/code/jetty/distros/jetty-home-9.4.18.v20190429/lib/annotations/
total 316
drwxr-xr-x 2 joakim joakim 4096 May 1 13:09 ./
drwxr-xr-x 14 joakim joakim 4096 May 1 13:09 ../
-rw-r--r-- 1 joakim joakim 113676 Nov 2 2018 asm-7.0.jar
-rw-r--r-- 1 joakim joakim 33317 Nov 2 2018 asm-analysis-7.0.jar
-rw-r--r-- 1 joakim joakim 79850 Nov 2 2018 asm-commons-7.0.jar
-rw-r--r-- 1 joakim joakim 50399 Nov 2 2018 asm-tree-7.0.jar
-rw-r--r-- 1 joakim joakim 26430 Jan 31 15:09 javax.annotation-api-1.3.jar
根据您启动 Jetty 的方式,这可能是初始化和注释/字节码扫描问题的根源。由于 asm 5.0 和 asm 7.0 不完全二进制兼容(至少从 Jetty 需要/使用的角度来看)
总之,什么都没有untowards关于 3 <dependency>
的已解析/有效依赖项列表您所询问的条目。
因此,让我们看看如果您尝试部署仅包含这 3 个依赖项的 Web 应用程序并完成注释扫描,会发生什么情况...
$ cat start.ini
--module=http
jetty.http.port=8080
--module=deploy
--module=annotations
$ ls -la webapps/
total 10500
drwxr-xr-x 2 joakim joakim 4096 May 19 10:59 ./
drwxr-xr-x 6 joakim joakim 4096 May 19 10:58 ../
-rw-r--r-- 1 joakim joakim 10742370 May 19 10:58 demo-with-w3j-libs.war
$ java -jar ~/code/jetty/distros/jetty-home-9.4.18.v20190429/start.jar
java -jar ~/code/jetty/distros/jetty-home-9.4.18.v20190429/start.jar
2019-05-19 11:11:02.993:INFO::main: Logging initialized @397ms to org.eclipse.jetty.util.log.StdErrLog
2019-05-19 11:11:03.182:INFO:oejs.Server:main: jetty-9.4.18.v20190429; built: 2019-04-29T20:42:08.989Z; git: e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 11.0.3+7
2019-05-19 11:11:03.195:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///home/joakim/code/jetty/stackoverflow/huge-war/webapps/] at interval 1
2019-05-19 11:11:03.896:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=436ms
2019-05-19 11:11:03.902:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /demo-with-w3j-libs, did not find org.eclipse.jetty.jsp.JettyJspServlet
2019-05-19 11:11:03.911:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2019-05-19 11:11:03.911:INFO:oejs.session:main: No SessionScavenger set, using defaults
2019-05-19 11:11:03.912:INFO:oejs.session:main: node0 Scavenging every 660000ms
2019-05-19 11:11:03.929:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@75437611{Demo of a WebApp with a large WEB-INF/lib,/demo-with-w3j-libs,file:///tmp/jetty-0.0.0.0-8080-demo-with-w3j-libs.war-_demo-with-w3j-libs-any-5411225940231111244.dir/webapp/,AVAILABLE}{/demo-with-w3j-libs.war}
2019-05-19 11:11:04.236:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=184ms
2019-05-19 11:11:04.237:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /huge-war, did not find org.eclipse.jetty.jsp.JettyJspServlet
2019-05-19 11:11:04.240:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@6f7923a5{Demo of a WebApp with a large WEB-INF/lib,/huge-war,file:///tmp/jetty-0.0.0.0-8080-huge-war.war-_huge-war-any-2121417525584312936.dir/webapp/,AVAILABLE}{/huge-war.war}
2019-05-19 11:11:04.295:INFO:oejs.AbstractConnector:main: Started ServerConnector@52c3cb31{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2019-05-19 11:11:04.295:INFO:oejs.Server:main: Started @1700ms
是的,正如我所料,它会正常启动。事实上,扫描该 WAR(在我的机器上)花费了不到 184 毫秒的时间..
2019-05-19 11:11:04.236:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=184ms
也许你的初始化可以告诉你发生了什么。
在 org.eclipse.jetty.annotations
都打开 DEBUG 的情况下运行和org.eclipse.jetty.webapp
并查看是否存在任何异常。还要注意注释扫描报告的计时,它可能指向特定的有问题的 jar 或您拥有的整套库的总体计时问题。
使用 StdErrLog 特定属性启动 jetty 以在 2 个包上启用调试的示例 org.eclipse.jetty.annotations
和org.eclipse.jetty.webapp
.
输出将向您显示 JAR 文件的问题以及扫描的每个 jar 文件的时间。查找“扫描耗时”,后面的行将告诉您 Web 应用程序中每个 JAR 文件的时间。
$ java -jar ~/code/jetty/distros/jetty-home-9.4.18.v20190429/start.jar -Dorg.eclipse.jetty.annotations.LEVEL=DEBUG -Dorg.eclipse.jetty.webapp.LEVEL=DEBUG
...(snip)...
2019-05-19 11:15:14.796:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/Darwin/libjffi-1.2.jnilib
2019-05-19 11:15:14.796:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/aarch64-Linux/libjffi-1.2.so
2019-05-19 11:15:14.796:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/arm-Linux/libjffi-1.2.so
2019-05-19 11:15:14.797:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/i386-Linux/libjffi-1.2.so
2019-05-19 11:15:14.797:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/i386-SunOS/libjffi-1.2.so
2019-05-19 11:15:14.797:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/i386-Windows/jffi-1.2.dll
2019-05-19 11:15:14.797:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/ppc-AIX/libjffi-1.2.a
2019-05-19 11:15:14.797:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/ppc64-Linux/libjffi-1.2.so
2019-05-19 11:15:14.800:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/ppc64le-Linux/libjffi-1.2.so
2019-05-19 11:15:14.800:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/sparcv9-Linux/libjffi-1.2.so
2019-05-19 11:15:14.800:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/sparcv9-SunOS/libjffi-1.2.so
2019-05-19 11:15:14.800:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/x86_64-FreeBSD/libjffi-1.2.so
2019-05-19 11:15:14.800:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/x86_64-Linux/libjffi-1.2.so
2019-05-19 11:15:14.801:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/x86_64-OpenBSD/libjffi-1.2.so
2019-05-19 11:15:14.801:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/x86_64-SunOS/libjffi-1.2.so
2019-05-19 11:15:14.801:DBUG:oeja.AnnotationParser:qtp1571967156-41: Not a class: jni/x86_64-Windows/jffi-1.2.dll
...(snip)...
2019-05-19 11:15:15.393:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=654ms
2019-05-19 11:15:15.393:DBUG:oeja.AnnotationConfiguration:main: Scanned file:///home/joakim/code/jetty/distros/jetty-home-9.4.18.v20190429/lib/servlet-api-3.1.jar in 141ms
2019-05-19 11:15:15.393:DBUG:oeja.AnnotationConfiguration:main: Scanned file:///tmp/jetty-0.0.0.0-8080-demo-with-w3j-libs.war-_demo-with-w3j-libs-any-14235900391383929769.dir/webapp/WEB-INF/classes/ in 1ms
2019-05-19 11:15:15.393:DBUG:oeja.AnnotationConfiguration:main: Scanned file:///tmp/jetty-0.0.0.0-8080-demo-with-w3j-libs.war-_demo-with-w3j-libs-any-14235900391383929769.dir/webapp/WEB-INF/lib/Java-WebSocket-1.3.8.jar in 144ms
2019-05-19 11:15:15.393:DBUG:oeja.AnnotationConfiguration:main: Scanned file:///tmp/jetty-0.0.0.0-8080-demo-with-w3j-libs.war-_demo-with-w3j-libs-any-14235900391383929769.dir/webapp/WEB-INF/lib/abi-4.2.0.jar in 163ms
2019-05-19 11:15:15.393:DBUG:oeja.AnnotationConfiguration:main: Scanned file:///tmp/jetty-0.0.0.0-8080-demo-with-w3j-libs.war-_demo-with-w3j-libs-any-14235900391383929769.dir/webapp/WEB-INF/lib/asm-5.0.3.jar in 126ms
...(snip)...
2019-05-19 11:15:15.394:DBUG:oeja.AnnotationConfiguration:main: Scanned 1 container path jars, 31 WEB-INF/lib jars, 1 WEB-INF/classes dirs in 654ms for context o.e.j.w.WebAppContext@75437611{demo-with-w3j-libs,/demo-with-w3j-libs,file:///tmp/jetty-0.0.0.0-8080-demo-with-w3j-libs.war-_demo-with-w3j-libs-any-14235900391383929769.dir/webapp/,STARTING}{/demo-with-w3j-libs.war}
最后,如果您的计算机速度较慢,并且只想将超时设置为更大的值,则可以设置 org.eclipse.jetty.annotations.maxWait
值(以秒为单位)更高。
可以将其设置为 ServletContext 属性、服务器属性或系统属性(按该顺序搜索)。
关于java - 当我在 pom.xml 中添加库依赖项时,jetty servlet 容器无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56207006/
SQLite、Content provider 和 Shared Preference 之间的所有已知区别。 但我想知道什么时候需要根据情况使用 SQLite 或 Content Provider 或
警告:我正在使用一个我无法完全控制的后端,所以我正在努力解决 Backbone 中的一些注意事项,这些注意事项可能在其他地方更好地解决......不幸的是,我别无选择,只能在这里处理它们! 所以,我的
我一整天都在挣扎。我的预输入搜索表达式与远程 json 数据完美配合。但是当我尝试使用相同的 json 数据作为预取数据时,建议为空。点击第一个标志后,我收到预定义消息“无法找到任何内容...”,结果
我正在制作一个模拟 NHL 选秀彩票的程序,其中屏幕右侧应该有一个 JTextField,并且在左侧绘制弹跳的选秀球。我创建了一个名为 Ball 的类,它实现了 Runnable,并在我的主 Draf
这个问题已经有答案了: How can I calculate a time span in Java and format the output? (18 个回答) 已关闭 9 年前。 这是我的代码
我有一个 ASP.NET Web API 应用程序在我的本地 IIS 实例上运行。 Web 应用程序配置有 CORS。我调用的 Web API 方法类似于: [POST("/API/{foo}/{ba
我将用户输入的时间和日期作为: DatePicker dp = (DatePicker) findViewById(R.id.datePicker); TimePicker tp = (TimePic
放宽“邻居”的标准是否足够,或者是否有其他标准行动可以采取? 最佳答案 如果所有相邻解决方案都是 Tabu,则听起来您的 Tabu 列表的大小太长或您的释放策略太严格。一个好的 Tabu 列表长度是
我正在阅读来自 cppreference 的代码示例: #include #include #include #include template void print_queue(T& q)
我快疯了,我试图理解工具提示的行为,但没有成功。 1. 第一个问题是当我尝试通过插件(按钮 1)在点击事件中使用它时 -> 如果您转到 Fiddle,您会在“内容”内看到该函数' 每次点击都会调用该属
我在功能组件中有以下代码: const [ folder, setFolder ] = useState([]); const folderData = useContext(FolderContex
我在使用预签名网址和 AFNetworking 3.0 从 S3 获取图像时遇到问题。我可以使用 NSMutableURLRequest 和 NSURLSession 获取图像,但是当我使用 AFHT
我正在使用 Oracle ojdbc 12 和 Java 8 处理 Oracle UCP 管理器的问题。当 UCP 池启动失败时,我希望关闭它创建的连接。 当池初始化期间遇到 ORA-02391:超过
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve
引用这个plunker: https://plnkr.co/edit/GWsbdDWVvBYNMqyxzlLY?p=preview 我在 styles.css 文件和 src/app.ts 文件中指定
为什么我的条形这么细?我尝试将宽度设置为 1,它们变得非常厚。我不知道还能尝试什么。默认厚度为 0.8,这是应该的样子吗? import matplotlib.pyplot as plt import
当我编写时,查询按预期执行: SELECT id, day2.count - day1.count AS diff FROM day1 NATURAL JOIN day2; 但我真正想要的是右连接。当
我有以下时间数据: 0 08/01/16 13:07:46,335437 1 18/02/16 08:40:40,565575 2 14/01/16 22:2
一些背景知识 -我的 NodeJS 服务器在端口 3001 上运行,我的 React 应用程序在端口 3000 上运行。我在 React 应用程序 package.json 中设置了一个代理来代理对端
我面临着一个愚蠢的问题。我试图在我的 Angular 应用程序中延迟加载我的图像,我已经尝试过这个2: 但是他们都设置了 src attr 而不是 data-src,我在这里遗漏了什么吗?保留 d
我是一名优秀的程序员,十分优秀!