当前位置: 首页 > 知识库问答 >
问题:

在命令行中找不到MIME媒体类型Application/xml,但可以在Eclipse中使用

陈瀚玥
2023-03-14

我使用Maven,泽西和Jetty服务器来构建Web服务接口。

当我在Eclipse上开发和测试软件时,一切都很好。然而,当我试图部署项目并向接口发出请求时,服务器报告“找不到MIME媒体类型的应用程序/xml”。

我尝试了几天来解决这个问题,发现ServiceFinder(由Jersey提供)可以在Eclipse上找到所有MessageBodyWriter,但不能在命令行中找到。我还检查了所有jersery LIB是否已经就位,并在META-INF中定义

非常感谢您的帮助!谢谢

JDK:1.6.0_30 Eclipse:Indigo SR2 Jersey:1.12 Jetty:6.1.25

ServiceFinder代码:

ServiceFinder.find(javax.ws.rs.ext.MessageBodyWriter.class, true).toClassArray();

==================META-INF创建人:Apache Maven构建人:Build Jdk:1.6.0_30类路径:jersey-servlet-1.12。jar-server-1.12。jar asm-3.1。jar jersey-core-1.12。罐子

============= 在命令行中(只有ViewableMessageBodyWriter可用)

GN MBR:class com.sun.jersey.server.impl.template.ViewableMessageBodyWriter CP:co
m.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@28946
139 C:com.sun.jersey.server.impl.template.ViewableMessageBodyWriter@6a7d46b8

================在eclipse中(所有jersey提供商都可用)

GN MBR:class com.sun.jersey.server.impl.template.ViewableMessageBodyWriter CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@2fba32e3 C:com.sun.jersey.server.impl.template.ViewableMessageBodyWriter@60039882
GN MBR:class com.sun.jersey.core.impl.provider.entity.StringProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@6962ed8f C:com.sun.jersey.core.impl.provider.entity.StringProvider@31cc3e7c
GN MBR:class com.sun.jersey.core.impl.provider.entity.ByteArrayProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@5dda7d56 C:com.sun.jersey.core.impl.provider.entity.ByteArrayProvider@1af30c34
GN MBR:class com.sun.jersey.core.impl.provider.entity.FileProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@335ac93d C:com.sun.jersey.core.impl.provider.entity.FileProvider@6695c13b
GN MBR:class com.sun.jersey.core.impl.provider.entity.InputStreamProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@d51de22 C:com.sun.jersey.core.impl.provider.entity.InputStreamProvider@4592b04e
GN MBR:class com.sun.jersey.core.impl.provider.entity.DataSourceProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@79ce9102 C:com.sun.jersey.core.impl.provider.entity.DataSourceProvider@41fb404
GN MBR:class com.sun.jersey.core.impl.provider.entity.RenderedImageProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@689258c7 C:com.sun.jersey.core.impl.provider.entity.RenderedImageProvider@4c843d2b
GN MBR:class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@6002a673 C:com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider@20f1fbb4
GN MBR:class com.sun.jersey.core.impl.provider.entity.FormProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@4dfdf943 C:com.sun.jersey.core.impl.provider.entity.FormProvider@44d0d6fd
GN MBR:class com.sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@5cf7c5b5 C:com.sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider@29dafde4
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@ed51dc2 C:com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App@8c5697a
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$Text CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@4994b329 C:com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$Text@48e14b1f
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@417e6e7c C:com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General@6c9ce1cb
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@5387b07b C:com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App@2acb4dcf
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@71538614 C:com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text@59b02f33
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@2287c52c C:com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General@9fc1ec5
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@7fa1dd69 C:com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App@7a95626d
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$Text CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@5bcf59f5 C:com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$Text@1e69555f
GN MBR:class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@a1b12ea C:com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General@4feaf536
GN MBR:class com.sun.jersey.core.impl.provider.entity.ReaderProvider CP:com.sun.jersey.core.spi.component.ProviderFactory$SingletonComponentProvider@7776c5d4 C:com.sun.jersey.core.impl.provider.entity.ReaderProvider@5d66341b

......

================完整错误堆栈==================

23-May-2012 12:05:54 com.sun.jersey.spi.container.ContainerResponse write
SEVERE: The registered message body writers compatible with the MIME media type
are:
*/* ->
  com.sun.jersey.server.impl.template.ViewableMessageBodyWriter

23-May-2012 12:05:54 com.sun.jersey.spi.container.ContainerResponse logException

SEVERE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.test.TestRest, and Java type class com.test.TestRest, and MIME media type application/xml was not found
        at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285)
        at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1451)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363)
        at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353)
        at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
        at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class com.test.TestRest, and Java type class com.test.TestRest, and MIME media type application
/xml was not found
        ... 21 more

==================启动Jetty服务器===我正在使用Jetty Web服务器,并按如下方式启动服务器:

Context root = new Context(server, "/", Context.SESSIONS); 
// Add REST handlers and Singleton providers 
ResourceConfig rc = new PackagesResourceConfig("handlerpkg"); 

// Add the Jersey root servlet holder to the root context 
root.addServlet(new ServletHolder(new ServletContainer(rc)), "/*");

server.start();

共有1个答案

葛昱
2023-03-14

通过添加jersey-core-1.12解决了这个问题。jar作为VM参数的一部分显式地位于类路径中。

我在-cp中只有一个库,它指向使用清单中的类路径字段的其他库。MF文件。有趣的是,使用这种方法,ServiceFinder可以找到MessageBodyReaders,但MessageBodyWriter无法找到。

现在我在-cp中有两个库,即jersey-core-1.12。jar和lib包含主类。

stackoverflow是一个了不起的开发者网站。

 类似资料:
  • 问题内容: 我正在尝试简单的Jersey + JSON示例,但出现以下错误 我放入以下jar文件以获得适当的结果 为什么会出现此类错误?错误日志在这里: web.xml JsonExample.java 和Json服务 如果我做错了事,请提出建议。 问题答案: 此问题已通过jersey-bundle-1.8.jar修复

  • 我在使用JAX-RS服务作为JSON时遇到了一些问题。

  • 我正在使用jersey客户端调用rest webservice。 我的网络服务正在使用json,所以我需要让json打电话给我的网络服务提供商。 我用下面的方法做这件事。 但是我得到了以下异常: 09:52:01,625错误[[MVC-dispatcher]]servlet MVC-dispatcher的Servlet.service()抛出异常com . sun . jersey . API .

  • 但最后一句话是: org.glassfish.jersey.message.internal.messageBodyProviderNotFoundException:找不到媒体的MessageBodyReader type=application/octet-stream,type=class com.app.weather.providers.org.openweatherap.pojo.we

  • 我正在使用Jersey构建REST服务,并希望返回一个< code >集合 但我的尝试失败了,但有以下例外: javax.ws.rs.WebApplicationException:com.sun.jersey.api。MessageException:Java类Java.util的消息体编写器。ArrayList和Java类型类Java.util。找不到ArrayList和MIME媒体类型tex

  • 最初设计MIME(多用途Internet邮件扩展)媒体类型,以便电子邮件可以包括除纯文本之外的信息。 MIME媒体类型表示以下内容 - 消息的不同部分(如文本和附件)如何组合到消息中。 指定消息的每个部分的方式。 编码不同项目以进行传输的方式,以便即使设计为仅使用ASCII文本的软件也可以处理该消息。 现在MIME类型不只是用于电子邮件; 它们已经被Web服务器采用,作为告诉Web浏览器向他们发送