Thursday, October 20, 2011

When using ORA:PARSEESCAPEDXML() in our code we were successfully parsing & characters before applying the MLR#9 but after applying MLR#9 we are unable to process this messages.

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com
Problem:    When using ORA:PARSEESCAPEDXML() in our code we were successfully parsing & characters before applying the MLR#9 but after applying MLR#9 we are unable to process this messages. 

Log files:
ora:parseEscapedXML(string). The function takes a string as a parameter and
returns structured XML data
As per Note: 861637.1 The only options is to change the input variable and 
use "&" as a replacement of '&' in stringContent variable.
As per Note 567712.1, modify your xml code from ora:parseEscapedXML to
ora:parseXML

The above scenario did not work on 11.1.1.2 soa instance also, we got the
following error :

java.lang.Exception:
oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: XPath expression
failed to execute.
An error occurs while processing the XPath expression; the expression is
@ oraext:parseEscapedXML(bpws:getVariableData('inputVariable','payload','/client
:process/client:input')).
The XPath expression failed to execute; the reason was: internal xpath error.
Check the detailed root cause described in the exception message text and
verify that the XPath query is correct. at
oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:57
5) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381)
at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.j
ava: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.trinidadinternal.taglib.util.MethodExpressionMethodBinding.
invoke(MethodExpressionMethodBinding.java:53) at
@ org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBindin
g(UIXComponentBase.java:1245) at
@ org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183
) at
@ oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(Contex
tSwitchingComponent.java:90) at
@ oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhas
e(ContextSwitchingComponent.java:309) at
@ oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(Co
ntextSwitchingComponent.java:94) at
@ oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:1
02) at
@ oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(Contex
tSwitchingComponent.java:90) at
@ oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhas
e(ContextSwitchingComponent.java:309) at
@ oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(Co
ntextSwitchingComponent.java:94) at
@ oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:9
@ 6) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
@ at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
at
oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(Lifec
ycleImpl.java:698) at
oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleI
mpl.java:285) at
oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.ja
va:177) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecu
rityHelper.java:227) at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.
java:125) at
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(Registra
tionFilter.java:97) at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.
doFilter(TrinidadFilterImpl.java:420) at
oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.
doFilter(TrinidadFilterImpl.java:420) at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(Tr
inidadFilterImpl.java:247) at
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(Trinida
dFilterImpl.java:157) at
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java
:92) at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source) at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:101)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:4
1) at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:179)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
@ at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141) at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326) at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.jav
a:27) at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(Web
AppServletContext.java:3592) at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.
java:321) at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at
weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletCon
text.java:2202) at
weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.ja
va:2108) at
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at
weblogic.work.ExecuteThread.run(ExecuteThread.java:173) Caused by:
oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: XPath expression
failed to execute. An error occurs while processing the XPath expression; the
expression is
@ oraext:parseEscapedXML(bpws:getVariableData('inputVariable','payload','/client
:process/client:input')). The XPath expression failed to execute; the reason
was: internal xpath error. Check the detailed root cause described in the
exception message text and verify that the XPath query is correct. at
oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchU
til.java:260) at
oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatc
h(OperationInfoImpl.java:985) at
oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:716) at
oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:56
9) ... 68 more Caused by: javax.xml.ws.soap.SOAPFaultException: XPath
expression failed to execute. An error occurs while processing the XPath
expression; the expression is
@ oraext:parseEscapedXML(bpws:getVariableData('inputVariable','payload','/client
:process/client:input')). The XPath expression failed to execute; the reason
was: internal xpath error. Check the detailed root cause described in the
exception message text and verify that the XPath query is correct. at
oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(Dispatch
Impl.java:882) at
oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:715) at
@ oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(
OracleDispatchImpl.java:226) at
@ oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:
97) at
oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchU
til.java:256) ... 71 more

Solution:


Bug:9245013 

try the following workarounds:

1) Replace the "&" with "&" .You can use a Java exec in the BPEL code
to implement this workaround.

String temp = (((Element)getVariableData("inputVariable",
"payload","/client:ParseEscapedXMLTestProcessRequest/client:input")).getFirstC
hild()).getNodeValue();
System.out.println("String temp before manipulation: " + temp); 
addAuditTrailEntry("String temp before manipulation: " + temp);
temp = temp.replaceAll("&", "&amp"); 
//we have tried this also;
// temp = temp.replaceAll("&amp", "&");
System.out.println("String temp after manipulation: " + temp); 
addAuditTrailEntry("String temp after manipulation: " + temp);
(((Element)getVariableData("inputVariable",
"payload","/client:ParseEscapedXMLTestProcessRequest/client:input")).getFirstC
hild()).setNodeValue(temp);

2) The above workaround did not work also, we have tried the following:
modify xml code from ora:parseEscapedXML to ora:parseXML(),

References:




Get Oracle Certifications for all Exams
Free Online Exams.com

No comments: