5

Webサービスを使用してサーバーからデータを取得しようとしています。私はhttp://googcloudlabs.appspot.com/codelabexercise5.htmlで指定されているチュートリアルに従います。もちろん、要求を満たすために元のコードを変更しました。

現在、次のようなエラーが発生しています。サポートされていないContent-Type:text / html; charset=UTF-8サポートされているものは次のとおりです。[text/xml]

完全なエラーを確認するために、データを取得するときに新しいエラー関数を記述します。

var errorFn = function(e){

    for(var p in e){
    alert(e[p]);
    }
}

var successFn = function(resp){

    var data='';
    if(resp){
    //getting the data from the response object
        data=resp.data;         
    }

        //Some other code here... 

}

getData("/entity",null,successFn,errorFn);

そして、ブラウザはエラーオブジェクトに警告します。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 Unsupported Content-Type: text/html; charset=UTF-8 Supported ones are: [text/xml]</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /vehicle. Reason:
<pre>    Unsupported Content-Type: text/html; charset=UTF-8 Supported ones are: [text/xml]</pre></p><h3>Caused by:</h3><pre>com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html; charset=UTF-8 Supported ones are: [text/xml]

    at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(Unknown Source)

    at com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(Unknown Source)

    at com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(Unknown Source)

    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(Unknown Source)

    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(Unknown Source)

    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(Unknown Source)

    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Unknown Source)

    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Unknown Source)

    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Unknown Source)

    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Unknown Source)

    at com.sun.xml.internal.ws.client.Stub.process(Unknown Source)

    at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(Unknown Source)

    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)

    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(Unknown Source)

    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(Unknown Source)

    at $Proxy32.getAllVehicles(Unknown Source)

    at com.google.appengine.codelab.soap.client.VehicleServlet.doGet(VehicleServlet.java:52)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)

    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)

    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)

    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)

    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60)

    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)

    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)

    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)

    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:125)

    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)

    at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)

    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)

    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)

    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)

    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)

    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)

    at com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:94)

    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:370)

    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:923)

    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)

    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:409)

    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

</pre>
<hr /><i><small>Powered by Jetty://</small></i><br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                
<br/>                                                

</body>
</html>

誰かがこの問題で私を助けてくれますか?

少し早いですがお礼を!

4

7 に答える 7

6

クラスのヘッドに次のコードを追加します。

@BindingType("http://java.sun.com/xml/ns/jaxws/2003/05/soap/bindings/HTTP/")

次に、サーバーを再起動します。

于 2013-03-09T08:00:14.467 に答える
3

このエラーは私に発生しました。その理由は、Web サービスへの呼び出しが無効なホストに対して行われたためです。そのため、Web サーバーは xml ソープ メッセージではなく http エラー メッセージで応答します。

于 2015-10-15T18:09:56.917 に答える
1

私の場合、同じエラーですが、理由は異なります。

サーバーが Java サービス「ジェネレーター」に返した wsdl でポートが指定されていませんでした。したがって、Web サーバーは、もちろん text/XML ではなく text/html であるホームページを使用して、SOAP 呼び出しに応答しました。

ポートを wsdl に追加すると、問題が解決しました。

于 2013-05-13T11:27:16.653 に答える
0

シンプル:クライアント(ブラウザー?)は、本来Content-Type: text/htmlあるべきデータを送信していますContent-Type: application/soap+xml古いSOAPの場合も同様Content-Type: text/xmlです)。

したがって、手動でリクエストを行う場合は、HTTPリクエストにContent-Typeヘッダーを追加する必要があります。

于 2012-08-29T06:02:31.020 に答える
0

私もこの問題に遭遇しましたが、最終的にサーバーが原因であることがわかりました.

サーバーは Node.js 上に構築されており、2 つのパッケージを同時に使用して「multipart/form-data」タイプのフォーム データを解析していました。これが競合の原因でした: 実際のフォーム パーサーは生のフォーム データを取得できません。これは、既にそれを処理してクリーンなコンテンツを取得しているためです。を削除したところ、問題は解決しました。multerformidableformidablemultermulter

于 2015-01-27T03:52:20.853 に答える
0

このエラーは、SOAP リクエストを構成し、提供されたコンテンツが不適切にエンコードされている、フォーマットされている、またはアクセスできない場合にも発生する可能性があります。これはおそらくあなたのケースではありませんが、他の誰かがリクエストを送信する前に同じエラーに遭遇した場合は、メッセージ自体またはその添付ファイルを作成するために使用されるデータが不適切にエンコードされているか、フォーマットされているか、一般的にアクセスできないことを意味します.

于 2013-02-14T16:38:13.890 に答える