首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我的jar中缺少标准的消息体读取器提供者

在我的jar中缺少标准的消息体读取器提供者
EN

Stack Overflow用户
提问于 2011-11-07 16:08:23
回答 2查看 3K关注 0票数 2

我肯定错过了两天的时间.

我有一个简单的jar应用程序,它使用的是一个球衣客户端jar。当我从Eclipse或mvn运行我的主类时,一切都很好。

当我构建jar然后使用java -jar运行它时,我得到:

未找到用于Java类com.sun.jersey.api.client.ClientHandlerException:、Java类java.lang.String和MIME媒体类型java.lang.String /json的消息体阅读器

也就是说,我的客户端提供程序列表中缺少了所有标准Java类型、正文读取器提供者。

我在客户端的pom.xml依赖项中声明如下:

  • jersey-client
  • jersey-core
  • jersey-json
  • jersey-server
  • jackson-mapper-asl
  • jackson-core-asl
  • jersey-multipart

使我的应用程序工作的唯一方法是在我的客户端配置中声明StringProvider类.

代码语言:javascript
运行
复制
config.getClasses().add(StringProvider.class);

但是这个提供者解密必须只对自定义bean有必要吗?默认情况下,标准bean提供程序是可访问的?不是吗?

EN

回答 2

Stack Overflow用户

发布于 2012-11-07 23:15:10

我发现这几乎是在它发布一年后,但事实证明,我的问题是由于合并到一个单一的罐子使用阴影。再增加几台变压器似乎已经修好了。我的遮阳插件现在看起来是这样的:

代码语言:javascript
运行
复制
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.0</version>
            <configuration>
                <createDependencyReducedPom>false</createDependencyReducedPom>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>com.sandwormz.jettycore.NotezWebsocketMain</mainClass>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.handlers</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.schemas</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/services/javax.ws.rs.ext.MessageBodyReader</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/services/javax.ws.rs.ext.MessageBodyWriter</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>com.sandwormz.jettycore.NotezWebsocketMain</mainClass>
                            </transformer>
                        </transformers>
                        <filters>
                            <filter>
                                This is required if we want anything build on top of this
                                to
                                compile without security errors.
                                <artifact>*</artifact>
                                <excludes>
                                    <exclude>**/*.MF</exclude>
                                    <exclude>**/*.SF</exclude>
                                    <exclude>**/*.DSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>

希望这能帮上忙。

票数 8
EN

Stack Overflow用户

发布于 2011-11-07 18:49:04

您是否将所有的类捆绑在一个jar中(包括来自jersey模块的类)?如果是这样的话,那么看起来您丢失了一些META文件,或者您合并了它,使一个模块中的一个同名文件覆盖了来自其他模块的同名文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8039126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档