2012-11-20 49 views
2

我試圖得到基本的HTTP其餘HelloWorld示例在騾子工作,但我得到這個錯誤的Helloworld騾子休息WS錯誤

Could not find a transformer to transform "SimpleDataType{type=java.lang.String, mimeType='*/*'}" to "SimpleDataType{type=java.io.InputStream, mimeType='*/*'}". (org.mule.api.transformer.TransformerException). Message payload is of type: 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> 

而且我的球衣服務等級

@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) 
+0

您是否使用studio/mule ide和maven? – genjosanzo

+0

我使用eclipse和maven,之後都部署到tomcat。 – Stainedart

+0

在Tomcat中部署時,是否將端點從'http'更改爲'servlet'? –

回答

2

你的配置運行只需用騾子3.3.0精(Tomcat的外部測試,在Eclipse),所以我懷疑問題是來自於你的web應用的類路徑缺失或重複的JAR文件。

檢查在WEB-INF/lib中打包的JAR以及Tomcat的/lib目錄中可能手動添加的JAR。

+0

是的,我有2個騾子的核心。現在我需要確定哪一個刪除 – Stainedart

+0

,可能是其版本與其他Mule JAR不匹配的那個。 –

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

,並使用這個網址。 http://localhost:8081/api/version 結果是-Version 999

0

如果您正在運行Mule Studio 3.3.0,則必須放置mimeType。 例如:

<flow name="RestServiceFlow" doc:name="RestServiceFlow"> 
     <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8083" doc:name="HTTP" mimeType="application/json"/> 
     <jersey:resources doc:name="RESTUTCNotification"> 
      <component class="example.esb.restApi"/> 
     </jersey:resources> 
    </flow>