これまでのところ、サーバー側の要求に GWT RPC 呼び出しを使用していますが、これは非常に優れています。コードをサーブレットと GWT クライアント側に分離することを計画しています。私はRPC呼び出しを使用しているため、不可能のようです。このようにしたい理由は、アプリにホワイトラベルオプションを提供することを計画しているためです。したがって、コードをクライアント コードとサーブレットに分離できれば、ホワイト ラベルのクライアント コードをパートナーに提供して、パートナーのサーバーでホストすることができます。GWT RequestBuilder で確認しましたが、正常Access-Control Allow-Origin : Origin from Client Header
に動作します。
ただし、RequestBuilder リクエストとサーブレット レスポンスに gwt-serialization を実装する必要があります。これどうやってするの ..?
私が作りたいシナリオ:
RequestBuilder は Serializable String (
IsSerialiazible
オブジェクト) を Servlet に送信します。サーブレットは文字列を Java オブジェクトにデシリアライズし、処理して、'IsSeraliazable' オブジェクトの文字列応答を返します。
GWT RequestBuilder で受信した応答文字列は、Java オブジェクト (コンパイル後の JS) に逆シリアル化されます。
リクエストとレスポンスのシリアライズとデシリアライズに関する情報があると思われる RemoteServiceServlet クラスを確認しました。しかし、RequestBuilder で動作させることができませんでした。どんなアイデアでも、それが誰にとっても役立つことを願っています.
public final void processPost(HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException,SerializationException
{
// Read the request fully.
//
String requestPayload = readContent(request);
// Let subclasses see the serialized request.
//
onBeforeRequestDeserialized(requestPayload);
// Invoke the core dispatching logic, which returns the serialized
// result.
//
String responsePayload = processCall(requestPayload);
// Let subclasses see the serialized response.
//
onAfterResponseSerialized(responsePayload);
// Write the response.
//
writeResponse(request, response, responsePayload);
}