-1

私はこれを読みました: Flex: HTTP request error #2032

そしてこれ: http://www.judahfrangipane.com/blog/2007/02/15/error-2032-stream-error/

何が起こっているのかを理解しようとしていますが、これまでのところ大きな失敗をしています...

HTTPService コンポーネントを使用した最も単純なサーブレットでさえ消費できません。それらはすべて失敗し、理由がわかりません。

Post と Get も試しました。

HTTP リクエスト エラー

Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Error de secuencia. URL: http://localhost:8080/root/test"]. URL: http://localhost:8080/root/test

フレックス:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx"
               minWidth="955" minHeight="600">
        <fx:Declarations>
            <s:HTTPService
                id="httpSerciseTest"
                url="/root/test"
                method="GET"
                resultFormat="e4x"
                useProxy="false"
                result="resultHandler(event)"
                fault="Alert.show(event.fault.faultString+
                '\n' + event.fault.faultDetail,
                'Error: '+event.fault.faultCode)"/>
        </fx:Declarations>
        <fx:Script>
            <![CDATA[
                import mx.controls.Alert;
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;

                [Bindable]private var xmlResult:XML;
                private function creationCompleteHandler():void
                {
                    httpSerciseTest.send();
                }
                private function resultHandler(event:ResultEvent):void
                {
                    xmlResult=event.result as XML;
                }
            ]]>
        </fx:Script>
</s:Application>

Java サーブレット:

public class Test extends HttpServlet {
    private static final long serialVersionUID = 4484874511692568559L;
    private static final String CONTENT_TYPE = "text/xml; charset=utf-8";
    protected void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException
    {
        response.setContentType(CONTENT_TYPE);
        try{
            PrintWriter writer=response.getWriter();
            writer.println("<?xml version=\"1.0\"?>\n");
            writer.println("<root>");
            writer.println("<folder label=\"Repository\"/>");
            writer.println("<folder label=\"Documentation\"/>");
            writer.println("</root>");
        }catch (IOException IOE){
            throw IOE;
        }
    }
}

web.xml

<servlet>
        <servlet-name>test</servlet-name>
        <display-name>test</display-name>
        <servlet-class>java_servlets.Test</servlet-class>
    </servlet>
<servlet-mapping>
        <servlet-name>test</servlet-name>
        <url-pattern>/test</url-pattern>
    </servlet-mapping>

また、サーブレットでファイル参照のアップロードとダウンロードを使用していますが、正常に動作していますが、HTTPService でまったく同じサーブレットを呼び出すと、それらも失敗します...

編集: localhost:8080/root/test は、HTTP ステータス 404 ページを示しています。

2 番目の編集: このテスト例から doGet をファイル アップロード サーブレットとその動作にコピーして貼り付けました。

4

1 に答える 1

0

OK、私はそれを機能させました.2つのことが起こっていました:

1.- パラメータなしでサーブレットの Post メソッドを使用することはできません。例に示すように、method="POST" を method="GET" に変更しましたが、Java ソース フォルダの変更を Eclipse で再コンパイルするのに苦労することがあります。 、通常、新しい変更を完全にデプロイするには、JBoss for eclipse をクリーンアップして再起動する必要があります。

2.- shaunhusain が示唆したように、xml が表示されることを期待して localhost:8080/root/test という URL を試してみましたが、404 を取得したため、そもそもサーブレットが利用可能でさえありませんでした。これまでのところ、まだテストを取得できません。サーブレットを利用できるようにしましたが、必要なサーブレットが動作するようになりました。コンパイルされたサーブレットが戦争のどの部分にあるのか、またはサーブレットが確実に展開されるようにする方法はまだわかりません。

Java サーブレットがどのように ecplise に認識され、自分で展開されるのかを理解しようとしていますが、誰かがプロセスを親切に説明したり、適切なソースを提供したりした場合は、正解としてマークします。これが私の主な理由だったからです問題。

編集:もう1つ、障害イベントがスローされた例外を取得していません.doPostまたはdoGet関数で何かが失敗すると、実際のエラーメッセージではなくHTTPリクエストエラー#2032が表示されます.

編集: 見つかりました!、Eclipse が完全な変更の公開にランダムに失敗し、一部のサーブレットが公開されないことが判明しました。これは、これまでのところ動作させるために私が見つけた唯一の確実な方法です:

サーバー ビューからサーバーを削除し、「workspace.metadata.plugins\org.eclipse.wst.server.core\publish」に移動し、すべての publish.xml ファイルを削除してから、Eclipse を再起動します。

http://www.eclipsezone.com/eclipse/forums/t88527.html

これは、messagebroekr/amf でも非常に頻繁に発生します。

于 2012-10-15T16:53:35.760 に答える