Tôi nhận được lỗi bên dưới trong khi chạy API Jersey trong Tomcat 8.5.11, điều này khiến API của tôi dừng:
Trạng thái HTTP 500 - Servlet.init () cho dịch vụ RESTlet Jersey đã ném ngoại lệ
Loại Báo cáo ngoại lệ
thông báo Servlet.init () cho servlet Jersey REST Service đã ném ngoại lệ
Mô tả Máy chủ gặp lỗi nội bộ khiến nó không thể đáp ứng yêu cầu này.
ngoại lệ
javax.servlet.ServletException: Servlet.init () cho servlet Jersey REST Service đã ném ngoại lệ org.apache.cirthina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:474) org.apache.citalina.valves java: 79) org.apache.cirthina.valves.Ab tríchAccessLogValve.invoke (AbstractAccessLogValve.java:624) org.apache.citalina.connector.CoyoteAd Module.service (CoyoteAd Module.java:349) org.ap. dịch vụ (http11Processor.java:783) org.apache.coyote.Ab tríchProcessorLight. Process (AbstractProcessorLight.java:66) org.apache.coyote.AbaugeProtatio $ ConnectionHandler. Process (AbstractProtatio.java:798). net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1434) org.apache.tomcat.util.net.SocketProcessorBase.chạy (SocketProcessorBase.java:49) java.util.concản.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) java.util.concản.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:6). chủ đề.TaskThread $ WrappingRunnable.run (TaskThread.java:61) java.lang.Thread.run (Thread.java:745)
nguyên nhân gốc rễ
java.lang.IllegalStateException: Không tìm thấy tiêm chích. org.glassfish.jersey.iternal.inject.Injections.lookupInjectionManagerFactory (Injections.java:97) org.glassfish.jersey.i INTERNal.inject.Injections.createInjectionManager (Injections.java:89) org.glass. (ApplicationHandler.java:282) org.glassfish.jersey.servlet.WebComponent. (WebComponent.java:335) org.glassfish.jersey.servlet.ServletContainer.init (ServletContainer.java:178) org.glass.j ServletContainer.init (ServletContainer.java:370) javax.servlet.GenericServlet.init (GenericServlet.java:158) org.apache.citalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java. ErrorReportValve.invoke (ErrorReportValve.java:79) org.apache.cirthina.valves.
Ứng dụng này được xây dựng với các phụ thuộc sau với gradle:
dependencies {
compile (
// REST
"org.glassfish.jersey.containers:jersey-container-servlet:2.+",
"javax.servlet:javax.servlet-api:4.+",
// REST Token
"org.bitbucket.b_c:jose4j:0.+",
// MongoDB
"org.hibernate.ogm:hibernate-ogm-bom:5.+",
"org.hibernate.ogm:hibernate-ogm-infinispan:5.+",
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.+",
"org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.+",
"org.jboss.narayana.jta:narayana-jta:5.+",
"org.jboss:jboss-transaction-spi:7.+",
"log4j:log4j:1.+",
"org.hibernate.ogm:hibernate-ogm-mongodb:5.+",
"org.bouncycastle:bcprov-jdk15on:1.+"
) }
Tải về jersey-common-2.26-b04.jar
này có chứa các lớp còn thiếu dưới /org/glassfish/jersey/internal/inject/InjectionManagerFactory
. Tệp jar được triển khai vào thư mục Tomcat bên dướiWEB-INF/lib
Điều gì có thể sai ở đây? Kịch bản gradle đã hoạt động trong vài tháng qua với cùng một phiên bản Tomcat.