【发布时间】:2020-03-22 11:13:20
【问题描述】:
在转换我的 RESTful 服务的依赖项时遇到了麻烦。 在使用此构造转移我的宁静服务的依赖关系之后。 以下是我的网络模块的一部分。
web.xml
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>se.nrm.bio.mediaserver.rs</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Java 类
@Path("/upload")
public class Service {
private final static Logger logger = Logger.getLogger(Service.class);
@EJB
private ServiceBean bean;
public Service() {
}
@GET
@Path("/isOK")
public Response isOK() {
logger.info("@GET /isOK");
logger.info("ServiceBean is "+bean);
return Response.status(200).entity("service ok").build();
}
@POST
@Path("/other")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadAllFiles(
@FormDataParam("fileName") String fileName,
@FormDataParam("owner") String owner,
@FormDataParam("content") final InputStream inStream) {
当我在自己的项目中运行它并部署它时,Web 服务可以工作。 当我将 Web 服务链接到我的“maven-multi-module”项目并替换当前的 Web 模块时,不会注入 EJB(在 ~/isOK 的记录器中获取“null”服务)
仔细查看 ear-file 和 wildfly-admin 界面。
我可以看到 ear-file 的结构在那里并且看起来正确,wildfly-admin 显示了我的 bean。
我是不是靠这里的org.glassfish.jersey 依赖关系搞砸了
我正在访问服务 ~/isOK 但是当我调用 ~/other 时,我得到以下堆栈跟踪。这是一个死胡同吗,当涉及到获取 bean 时,我是否必须使用另一种方法来解决问题? (我在那个 bean 中有我的数据库连接)
(注意:我发现了多个 restful-clients 示例和一些 restful-services [MediaType.MULTIPART_FORM_DATA] - 但我无法找到一个示例服务和一个示例客户端,它们都是用 Java 和我真的需要那个....因为我正在从另一个 java 应用程序调用服务。现在找到的所有书籍似乎都很旧。)
ERROR [io.undertow.request] (default task-13) UT005023: Exception handling request to /MediaServerResteasy/rest/upload/other: javax.servlet.ServletException: java.lang.NullPointerException
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:423)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:386)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:334)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
我的多 Maven 结构似乎可以工作,所以这是我现在面临的挑战。 我希望这个示例对您来说似乎很有趣,我希望你们中的一些人遇到了同样的问题并解决了这个问题 - 上传具有某些属性的文件。
最好的,我
【问题讨论】:
标签: rest maven jersey wildfly wildfly-10