1,现象:
运行时错误,后台出现空指针异常; 代码没有任何编译错误,operationbinding返回的result是null。
前台出现PPR错误,编号从1开始增加:
Servelet Exception during PPR, #1
Servelet Exception during PPR, #2
Servelet Exception during PPR, #3
...
Servelet Exception during PPR, #n


部分log信息如下:
后台:
<ActionListenerImpl><processAction> java.lang.NullPointerException
javax.faces.el.EvaluationException: java.lang.NullPointerException
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
......
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.lang.NullPointerException
at cn.com.rpt.bean.Login.doLogin(Login.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
... 43 more
<RegistrationConfigurator><handleError> Server Exception during PPR, #3
javax.servlet.ServletException: java.lang.NullPointerException
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
......
Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
......
... 35 more
Caused by: java.lang.NullPointerException
at cn.com.rpt.bean.Login.doLogin(Login.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
......
... 43 more
或者:
<2011-8-9 下午04时39分29秒 CST> <Error> <HTTP> <BEA-101020> <[
[email protected][app:NEUADFFRS module:NEUADFFRS-FRSUI-context-root path:/xxxx-context-root spec-version:2.5]] Servlet failed with Exception
oracle.jbo.PersistenceException: JBO-26000: 加载定制项时出现一般性异常错误。
at oracle.jbo.mom.MOMParserMDS.parse(MOMParserMDS.java:252)
at oracle.jbo.mom.MOMParserNonMDS.readAndParse(MOMParserNonMDS.java:71)
at oracle.jbo.mom.DefinitionContextStandard.readAndParse(DefinitionContextStandard.java:237)
at oracle.jbo.mom.DefinitionManager.loadDefElement(DefinitionManager.java:1170)
at oracle.jbo.mom.DefinitionManager.loadLazyDefinitionObject(DefinitionManager.java:946)
Truncated. see log file for complete stacktrace
Caused By: oracle.mds.exception.MDSRuntimeException: MDS-00068: 找不到以下对象的类型定义: 名称空间 = http://xmlns.oracle.com/bc4j, 本地名称 = LABEL, 文件位置 = /cn/com/xx/vo/XxxVO.xml
at oracle.mds.internal.model.parse.MDSNodeParser.findMMElement(MDSNodeParser.java:322)
at oracle.mds.internal.model.parse.MDSNodeParser.createModelNode(MDSNodeParser.java:603)
at oracle.mds.internal.model.parse.MDSNodeParser.startElement(MDSNodeParser.java:240)
at oracle.mds.internal.parsefwk.TreeBuilder$Handler.startElement(TreeBuilder.java:298)
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1328)
Truncated. see log file for complete stacktrace
>
前台界面:
java.lang.NullPointerException
For more information, please see the server's error log for
an entry beginning with: Server Exception during PPR, #3
2,解决方案
检查JDeveloper版本,我出现该情况的时候,使用的是JDeveloper 11.1.1.3.0,而同事用了JDeveloper 11.1.1.4.0,创建了VO对象等。
手去修改VO对象的版本号,11.1.1.59.23-->11.1.1.56.60,去除VO中错误代码。

重新运行,OK。