-1

我读过这个: Flex:HTTP 请求错误 #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 小服务程序:

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 可以从那里使用它,但不能从我创建的新服务中使用它,包括这个测试......

4

1 回答 1

0

好的,我得到了它的工作,发生了两件事:

1.- 你不能在没有任何参数的情况下使用 servlet 的 Post 方法,我确实将 method="POST" 更改为 method="GET",如示例所示,但有时我很难使用 eclipse 重新编译我的 java 源文件夹上的更改,我通常必须清理并重新启动 JBoss 以完全部署新的更改。

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

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

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

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

从服务器视图中删除服务器,转到“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 回答