cancel
Showing results for 
Search instead for 
Did you mean: 

Problem when using XSLT Mapping with Java Methods.

Former Member
0 Kudos

Hi all,

when i am running the following XSLT Mapping inPI7.1

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:javamap="java:at.pi.mapping.besoldung.BesoldungMapping">
	<xsl:template match="Messages">
		<Messages>
			<Message1>
				<xsl:apply-templates></xsl:apply-templates>
			</Message1>
		</Messages>
	</xsl:template>
	<xsl:template match="Message1">
		<test></test>
		<xsl:param name="inputparam"></xsl:param>
		<xsl:for-each select="MT_BesoldungConversions">
			<test1></test1>
			<!-- Prüfen ob die subtractDates Methode verfügbar ist -->
			<xsl:if test="function-available('javamap:createWhitespace')">
				<xsl:if test="function-available('javamap:extendTextWithWhitespaces')">
					<MT_BesoldungOut>
						<EDI_DC40>
							<xsl:param name="tablename">
								<xsl:value-of select="tablename"></xsl:value-of>
							</xsl:param>
							<xsl:variable name="constTen">10</xsl:variable>
							<xsl:value-of select="javamap:extendTextWithWhitespaces($tablename,$tablename, $inputparam)"></xsl:value-of>
						</EDI_DC40>
					</MT_BesoldungOut>
				</xsl:if>
			</xsl:if>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>

i get the exception:

Method fatalError called, terminate transformation, because of

javax.xml.transform.TransformerException: com.sap.engine.lib.xml.util.NestedException: Incompatible types at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:251) at com.sap.aii.ib.server.mapping.execution.AbstractMappingTransformer.transform(AbstractMappingTransformer.java:174) at com.sap.aii.ib.server.mapping.execution.XSLTMapping.executeStep(XSLTMapping.java:79) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.SequenceMapping.executeStep(SequenceMapping.java:40) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:87) at com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:54) at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:139) at com.sap.aii.ibrep.server.mapping.exec.ExecuteIfMapCommand.execute(ExecuteIfMapCommand.java:33) at com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40) at com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40) at sun.reflect.GeneratedMethodAccessor490_10000.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at $Proxy1510_10000.execute(Unknown Source) at sun.reflect.GeneratedMethodAccessor489_10000.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585)

Can anyone explain me, what the problem in this mapping is.

I am using the SAP XML Toolkit

Best regards,

Martin

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

Hi Stefan,

the signature of the java method is th following:

public static String extendTextWithWhitespaces(String aText, String aTotal, Map aInputParam)

br,

martin

stefan_grube
Active Contributor
0 Kudos

Could you post the signature of your Java class method?

It might incorrect.

Regards

Stefan

Former Member
0 Kudos

i have checked the xml file containing the message. it is wellformed.

Former Member
0 Kudos

The mapping was created in xml spy and it is wellformed.

If i uncheck the use sap xml toolkit option, the java methods cannot be found.

br,

martin

Former Member
0 Kudos

Hi martin,

I meant

check the XML source (= the XML that has to be transformed) instance NOT the mapping programm!

Regards Mario

Former Member
0 Kudos

Hi Martin,

a) what happens if you uncheck the button "use sap xmltoolkit" in your operation mapping?

b) Open you source in XMLSPY? Is the XML wellformed? Maybe there are any special character like ampersand that are in a wrong format.

Regard Mario