0

在我的 JSP 页面中,我使用了这个脚本:

<script type="text/javascript">
$("#birthDate").datepicker({ dateFormat: 'dd/mm/yy' });
$("#update").click(function (e) {
    var res = true;
    var alertMsg = "";
    $(".required").each(function (index) {
        if (this.value == null || this.value.length == 0) {
            alertMsg += this.name + " can't be empty! \n";
            res = false;
        }
    });

    if (res) {
        var response = $("#updateForm").submit();
        Window.location.reload();
    } else {
        alert(alertMsg);
    }
})


但是,请求的资源不可用,我得到了这个异常:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.RuntimeException: org.springframework.remoting.RemoteAccessException: Could not access remote service at [http://some.resource.com]; nested exception is javax.xml.ws.WebServiceException: java.lang.IllegalStateException: Current event not START_ELEMENT or END_ELEMENT
    com.dn.eb.controller.UpdateAccountServlet.throwException(UpdateAccountServlet.java:140)
    com.dn.eb.controller.UpdateAccountServlet.doPost(UpdateAccountServlet.java:122)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

org.springframework.remoting.RemoteAccessException: Could not access remote service at [http://some.resource.com]; nested exception is javax.xml.ws.WebServiceException: java.lang.IllegalStateException: Current event not START_ELEMENT or END_ELEMENT
    org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.doInvoke(JaxWsPortClientInterceptor.java:510)
    org.springframework.remoting.jaxws.JaxWsPortClientInterceptor.invoke(JaxWsPortClientInterceptor.java:487)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    $Proxy98.updateAccountRecord(Unknown Source)
    com.dn.eb.controller.UpdateAccountServlet.doPost(UpdateAccountServlet.java:117)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)


怎样才能处理这个异常,以便在我的页面上显示错误信息?

4

2 回答 2

1

您需要在 web.xml 中声明错误页面:

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/error.jsp</location>
</error-page>

现在Throwable应用程序抛出的任何东西都会调用error.jsp。或者这样:

<error-page>
    <error-code>500</error-code>
    <location>/error.jsp</location>
</error-page>

所有 500 个错误都将调用error.jsp

error.jsp是一个错误页面,可用于显示错误消息,在error.jsp中声明页面指令:

<%@ page isErrorPage="true"%>

这为您的 JSP 提供了隐式exception对象的句柄。

于 2013-07-01T11:29:34.677 回答
0

您应该看到来自远程端的实际响应。很可能您会看到一些样板 HTML 说明您的资源未找到、您未获得授权或类似的东西,而不是实际的 WS 响应。当 WS 服务器隐藏在 Apache 前端之后可能会发生这种情况,该前端被错误配置为假定您是浏览器。

于 2013-07-01T11:16:18.140 回答