java - Helloworld Mule Rest WS 错误

标签 java web-services rest jersey mule

我试图让基本的 http rest helloworld 示例在 Mule 中工作,但出现此错误

找不到将“SimpleDataType{type=java.lang.String, mimeType='*/*'}”转换为“SimpleDataType{type=java.io.InputStream, mimeType='*/”的转换器*'}"。 (org.mule.api.transformer.TransformerException)。消息负载的类型为:String

这是我的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:spring="http://www.springframework.org/schema/beans"
    xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:jersey="http://www.mulesoft.org/schema/mule/jersey" 
    xsi:schemaLocation="  
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd  
    http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/3.3/mule.xsd  
    http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/3.3/mule-http.xsd  
    http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/3.3/mule-xml.xsd 
    http://www.mulesoft.org/schema/mule/jersey http://www.mulesoft.org/schema/mule/jersey/3.0/mule-jersey.xsd
    http://jersey.apache.org/core http://jersey.apache.org/schemas/core.xsd">

    <flow name="HelloWorld">
        <inbound-endpoint address="http://localhost:8081/api"/>
        <jersey:resources>
            <component class="com.helloworld.AdminApi"/>
        </jersey:resources>
    </flow> 
</mule>

还有我的 Jersey 服务等级

@Path("version")
public class AdminApi {

    @GET
    @Produces("text/plain")
    public String sayHelloWithUri() {
        return "Version 999 " ;
    }
}

我正在尝试使用以下方式访问该服务:

http://localhost:8081/api/version

我相信这应该是正确的网址,但不幸的是我总是收到上述异常消息。

有人知道这可能是什么吗?

编辑:

Root Exception stack trace:
org.mule.api.registry.ResolverException: There are two transformers that are an exact match for input: "class java.lang.String", output: "class java.io.InputStream". Transformers are: "_ObjectToInputStream(class org.mule.transformer.simple.ObjectToInputStream)" and "_ObjectToInputStream(class org.mule.transformer.simple.ObjectToInputStream)"
    at org.mule.transformer.graph.GraphTransformerResolver.resolve(GraphTransformerResolver.java:65)
    at org.mule.registry.TypeBasedTransformerResolver.resolve(TypeBasedTransformerResolver.java:93)
    at org.mule.registry.MuleRegistryHelper.resolveTransformer(MuleRegistryHelper.java:265)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

最佳答案

您的配置在 Mule 3.3.0 上运行得很好(在 Tomcat 之外的 Eclipse 中测试),因此我怀疑问题来自于您的 Web 应用程序类路径上丢失或重复的 JAR。

检查打包在 WEB-INF/lib 中的 JAR 以及 Tomcat 的 /lib 目录中可能手动添加的 JAR。

关于java - Helloworld Mule Rest WS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13475119/

相关文章:

java - 从 arraylist java 获取值?

java - 字节数组转字符串

web-services - 如何查看 Tomcat 上可用的 Web 服务?

ios - Http 请求错误 500 仅在 iOS 上

iOS ionic 3 - iOS iphone 设备上的 CORS 错误 - 来源本地主机 :8080 is not allowed by Access-Control-Allow-Origin

java - 重用 RecyclerView 适配器

java - java中如何解密字符串

java - 使用 xsd :any for extensible schema

node.js - REST API 聊天 - 实时获取消息的端点

java - 使用 Date Param Java 从 URL 使用 Restful 方法