2

基本的な http rest helloworld の例を Mule で動作させようとしていますが、このエラーが発生します

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

これは正しいURLであると信じていますが、運が悪いと、常に上記の例外メッセージが表示されます。

誰でもこれが何であるか考えていますか?

編集:

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)
4

3 に答える 3

2

あなたの設定は Mule 3.3.0 (Tomcat の外部で Eclipse でテスト済み) で問題なく動作するため、Web アプリケーションのクラスパスに JAR がないか重複していることが問題の原因であると思われます。

パッケージ化されたWEB-INF/libJAR と、Tomcat の/libディレクトリに手動で追加された可能性のある JAR を確認します。

于 2012-11-21T16:40:51.833 に答える
0
<flow name="HelloWorld">
    <inbound-endpoint address="http://localhost:8081/api"/>
    <jersey:resources>
        <component class="com.helloworld.AdminApi"/>
    </jersey:resources>
</flow> 

この URL を使用します。http://localhost:8081/api/version 結果は -Version 999

于 2015-05-28T09:39:10.993 に答える