1

私はこのWCFサービスを持っています:

    [ServiceContract]
        public interface IService
        {
            [OperationContract]
            [WebInvoke(Method = "POST", UriTemplate = "/PostComments", BodyStyle = WebMessageBodyStyle.Wrapped,
                       RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
            string PostComments(string ItemId, string Comments, string FullName, string Location);
        }

    [DataContract]
        public class Comment
        {
            [DataMember]
            public string ItemId { get; set;}
            [DataMember]
            public string Comments { get; set;}
            [DataMember]
            public string FullName { get; set;}
            [DataMember]
            public string Location { get; set;}
        }

public class Service : IService
    {
       int i = 0;
       public string PostComments(string ItemId, string Comments, string FullName, string Location)
         {
            int Id;
            Id = Convert.ToInt32(ItemId);           
                adp = new SqlDataAdapter("insert into tblComment(intId,strComments,strFullName,strLocation,dtPosted,blnApprove) values("+Id+",'"+Comments+"','"+FullName+"','"+Location+"',GetDate(),1)", offcon);
                adp.Fill(ds1,"Comment");
                DataTable dt = ds1.Tables["Comment"];
                i++;
            }
            if (i > 0)
            {
                return "Comment Successfully Submitted.";
            }
            else
            {
                return "Comment falied to Submit.";
            }
        }

最終的なURLは::http://192.168.1.11/Service.Svc/PostCommentsです。

ここで私の主な質問は、クライアントがJAVAの場合にWCFでPOSTアクションを実行する方法です。

このエラーが発生します:

サーバーでリクエストの処理中にエラーが発生しました。例外メッセージは次のとおりです。'着信メッセージのメッセージ形式は'Raw'です。操作に必要なメッセージ形式は「Xml」、「Json」です。これは、WebContentTypeMapperがバインディングで構成されていないことが原因である可能性があります。詳細については、WebContentTypeMapperのドキュメントを参照してください。詳細については、サーバーログを参照してください。例外スタックトレースは次のとおりです。

System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(メッセージメッセージ、Object []パラメータ)at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(メッセージメッセージ、Object []パラメータ)at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(メッセージメッセージ、Object []パラメータ)at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc&rpc)at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&rpc)atSystem.ServiceModel.Dispatcher.ImmutableDispatchRuntime。ProcessMessage4(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&rpc)at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)のServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&rpc)ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&rpc)atSystem.ServiceModel.Dispatcher。ブールisOperationContextSet)ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&rpc)atSystem.ServiceModel.Dispatcher。ブールisOperationContextSet)

これは、サービスでPostメソッドを実行しようとしたときのエラーです。修正方法がわかりません。しかし、.netアプリケーションでは完全に正常に機能しています。しかし、JAVAにはありません。これを修正する方法。

4

1 に答える 1

0

申し訳ありませんが、これはひどいコンテンツタイプエラーでした:私はContent-Typeをapplication/jsonとして設定しました

この後のエラーは、JAVAコードから生データを取得することに関するものです。JSONオブジェクトは純粋なJsonデータを意味するので送信するように指示しました。

この後、残っているエラーは外部キー値のみが競合していることです。そしてついに、これらすべてを実行した後、エラーは解決しました。

ただし、Javaのコードをチェックすることも忘れないでください。コードが問題である可能性があるため、すべてのコードのコンテンツタイプをチェックしてください。

于 2012-09-21T13:43:44.920 に答える