Flex:HTTPService错误#2032每次

时间:2012-10-13 18:27:35

标签: java flex flex4 flash-builder

我读过这个: Flex: HTTP request error #2032

这个: http://www.judahfrangipane.com/blog/2007/02/15/error-2032-stream-error/

试图弄清楚到底发生了什么,到目前为止我失败了很多时间......

我甚至无法使用HTTPService组件使用最简单的servlet,它们都会失败,我不知道为什么。

尝试发布并获取。

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 servlet:

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>

另外,我使用文件引用上传和下载带有servlet的文件,它们工作正常,但如果我用HTTPService调用相同的servlet,它们也会失败......

编辑:localhost:8080 / root / test显示HTTP状态404页面。

第二次编辑:我将doGet从这个测试示例粘贴到我的文件上传servlet及其工作,HTTPService可以从那里使用它,但不是从我创建的新的,包括这个测试......

1 个答案:

答案 0 :(得分:0)

好的,我开始工作了,发生了两件事:

1.-你不能使用没有任何参数的servlet的Post方法,我确实改变了方法=&#34; POST&#34; for method =&#34; GET&#34;如示例中所示,但有时我很难在我的java源文件夹上重新编译eclipse,我通常需要干净并重新启动JBoss for eclipse以完全部署新的更改。

2.-正如shaunhusain建议的那样,我尝试了url localhost:8080 / root / test期望看到xml但是我得到了404,所以servlet在第一时间甚至不可用,到目前为止,我还是不能得到测试servlet是可用的,但我得到了一个需要工作的,我仍然不知道战争的一部分是编译的servlet,或者如何确保它们被部署。

Imma尝试弄清楚如何通过ecplise识别java servlet然后自己部署,但如果有人亲切地解释了这个过程或给出了一个好的来源,我会将其标记为正确的答案,因为这是主要的我的问题的原因。

编辑:还有一件事,故障事件没有得到我抛出的异常,当doPost或doGet函数出现故障时,我收到HTTP请求错误#2032而不是真正的错误消息。

编辑:发现它!,结果是eclipse随机无法发布完整的更改,一些servlet永远不会发布。 到目前为止,我发现这是唯一可靠的方法:

从服务器视图中删除服务器, 去 &#34; workspace.metadata.plugins \ org.eclipse.wst.server.core \发布&#34 ;, 然后删除所有的publish.xml文件 重启日食。

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

这也经常发生在messagebroekr / amf上。