XSLT Mapping with Java class not working in Integration Repository
Hi,
I have an XSLT mapping program with Java enhancement and I was able to successfully tested it in Stylus Studio. However, when I imported the Java class and the xslt program in Enterprise Service Builder and tested it, my program does not compile.
Here is the error message: "Transformer Configuration Exception occurred when loading XSLT mapping_temp.xsl; details: Could not compile stylesheet".
My java program is in a zip file containing SOAPHeaderHandler.java and SOAPHeaderhandler.class. My Java has a package com.nga.xslt.
Here is the declaration of my Java class in the XSLT: xmlns:javamap="java:com.nga.xslt.SOAPHeaderHandler"
It seems that it could not read the java class. Can you please advice what is wrong?
Hi ,
select XMLTOOLKIT option in Operation mapping and execute it.
I am not sure we can call java program in XSLT Program,but alternative is copy the code and use it in XSLT mapping it self,that means your XSLT program will become with JAVA extensions.
then in Operation mapping level select SAPXMLTOOL kit option and execute it. i hope it will work. if it is not working then you have deploy some JAXP files on server,because the way execution of XSLT Mpaping program got changed,like when eve you executing XSLT with extnasions( if you are not using XMLTOOL kit option) then you have to use latest version of JAXP.JDK files.
Regards,
Raj
Similar Messages
-
XSLT Mapping with Java Enhancement
Hi All
I am working on XSLT Mapping with Java Enhancement.
To do this scenario i have followed the following link.
http://help.sap.com/saphelp_nw04/helpdata/en/55/7ef3003fc411d6b1f700508b5d5211/frameset.htm
As per the above link I have created Source and Target Data Types , Message Types , Mesage Interfaces, XSLT Mapping (using the transaction XSLT_TOOL) and Interface Mapping part and configred a simple file to file scenario in the ID part.
Apart from this I have wirte the java code, compile the java code, create the jar file using .java and .class file and after creating the jar file import the .jar file in the imported archive of the IR..
when I am trying to execute the scenario I am getting the successful message in SXMB_MONI but the target file is having the payload as given below.
<?xml version ="1.0" encoding="UTF-8"?>
<name xmlns:javamap="java:com.company.group.MappingClass"/>
And as per the XSLT mapping the payload should be as below
<?xml version ="1.0" encoding="UTF-8"?>
<person>
<name>Rinku Gangwani</name>
</person>
I have also followed the following blog link but still i am getting the same issue
/people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
could you please tell me what can be the reason that i am getting the blank targt field values in the payload.
Thanks
Rinku GangwaniHi,
The Transaction code XSLT_TOOL for ABAP xslt mapping.But the Java Enhancement is used for normal xslt mapping which we created using Stylus Studio.You can not access the Java Enhancement in ABAP xslt mapping.
If you want to use Java Enhancement in xslt mapping then create a xslt mapping using Stylus Studio and save the file as .xsl and zip the .xsl and import to import archive.
Regards,
Prakasu.M
Edited by: prakasu on May 28, 2009 1:46 PM -
XSLT Maps with Java enhancements - JCO_SYSTEM_FAILURE
Hi,
I have reviewed several postings regarding XSLT Maps with Java enhancements. I followed instructions and build a jar file and the XSLT document. I built one imported archive with the .jar and .xsl. For the class, The path get loaded properly.
However, I still have a problem when and execute the interface.
My xslt has the following information
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="http://xyz.abc.sap.def.com"
xmlns:javamap="java:xyz.Date_Time">
<xsl:param name="inputparam" />
<xsl:template match="/">
<test><xsl:value-of select="javamap:getDateValue($inputparam)"/></test>
</xsl:template>
</xsl:transform>
In SXMB_Moni I get the following error...
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Request Message Mapping
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIServer</SAP:Category>
<SAP:Code area="MAPPING">JCO_SYSTEM_FAILURE</SAP:Code>
<SAP:P1>Exception in method processFunction.</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>"SYSTEM FAILURE" during JCo call. Exception in method processFunction.</SAP:Stack>
<SAP:Retry>A</SAP:Retry>
</SAP:Error>
If i remove the line
<test><xsl:value-of select="javamap:getDateValue($inputparam)"/></test>
The map ends successfuly.
Comments would be appreciated.
Regards,
SergioStefan,
Find the class and method definition below. The method is static and it returns the string.
==========
package xyz;
import java.util.Map;
import com.sap.aii.mapping.api.AbstractTrace;
import com.sap.aii.mapping.api.StreamTransformationConstants;
import java.util.*;
import java.text.*;
public class Date_Time {
private static AbstractTrace trace = null;
public static String getDateValue(Map inputparam)
trace = (AbstractTrace)inputparam.get(
StreamTransformationConstants.MAPPING_TRACE );
Date now1 = new Date();
SimpleDateFormat formatter = new SimpleDateFormat ("yyyyMMd");
String dateString = formatter.format(now1);
return dateString; -
XSLT Mapping with Java Enhancement - how to pass Java Errors
Hi all,
I plan to build a XSLT-Mapping and do a RFC-Call out of it. (Client order!) So, I have to call my selfwritten Java class from the XSLT mapping and therefore report Connection errors back to the XSLT mapping (from Java). Is there a definition for the interface between Java and XSLT I can use?
Thanks and regards.
Danielhi,
hope this one will be more appropriate link
http://help.sap.com/saphelp_nw04s/helpdata/en/55/7ef3003fc411d6b1f700508b5d5211/frameset.htm
and this link will also be useful
http://help.sap.com/saphelp_nw04s/helpdata/en/4c/b2ad3de2d76b3be10000000a114084/frameset.htm
regards,
sundararamaprasad -
XSLT mapping with Java helper classes
Hi,
I'm trying to implement a XSLT mapping to convert my request to a specific soap request message format for this I'm calling some methods from a java helper class. I have imported the jar file into the archives. When I tried to test the interface it keeps complaing there is some exception but doesn't give me the exact error. Has any one called any java helper classes with in XSLT mapping, if so I would appreciate if you could help me with this. Here is the code from xsl.
<wsse:Security soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext" xmlns:UserToken="java:com.company.test.mapping.UserTokenMap">
<wsse:UsernameToken>
<wsse:Username xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<xsl:value-of select="UserToken:getUsername()"/>
</wsse:Username>
<wsse:Password wsse:Type="wsse:PasswordDigest" xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<xsl:value-of select="UserToken:getPasswordDigest()"/>
</wsse:Password>
<wsse:Nonce xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<xsl:value-of select="UserToken:getNonce()"/>
</wsse:Nonce>
<wsu:Created xsi:type="soapenc:string" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<xsl:value-of select="UserToken:getCreateDate()"/>
</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
Thanks,
JoeHi,
I'm getting following exception when I refer to the java class with in my XSLT mapping. Any one encountered the same problem.
com.sap.engine.services.ejb.exceptions.BaseRemoteException:
Exception in method transform.
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:218)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native
Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Caused by: java.lang.UnsupportedClassVersionError:
com/earthlink/xi/mapping/UserTokenMap (Unsupported
major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native
Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:56)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:43)
at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:51)
at com.sap.engine.lib.xsl.xslt.XSLValueOf.process(XSLValueOf.java:76)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:463)
at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:431)
at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:394)
at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:398)
at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:240)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
at com.sap.aii.ibrep.server.mapping.ibrun.RepSequenceMapping.execute(RepSequenceMapping.java:54)
at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:167)
... 10 more
; nested exception is:
java.lang.UnsupportedClassVersionError:
com/earthlink/xi/mapping/UserTokenMap (Unsupported
major.minor version 49.0) -
XSLT mapping calls Java class, with hardcoded values-problem at Transport
Hi All,
I know the subject may be misguiding, but i need some suggestions how to handle the following scenario.
From my XSLT mapping, i am calling a java function which performs a data connection to an oracle database and then returns some values, whcih i have mapped in the mapping.
The problem is, i have hardcoded the Connection parameters....
and now that we transport these objects to production, the connection parameters will change.
I thought of two solutions
1) i create a new java class for Production system
2) i define the parameters as input arguemnts to my method, whcih is called from XSLT mapping
But in both cases, if theres any chg in future, there will a dependancy on one of the objects to be changed and sent again.
What is the suggested way? is there nothing like a property file(like in EP), where you define dependant parameters...and the file is only changed.
XI Gurus, please suggest me the correct way to handle.....
Thanks a lot.
MonaMona,
This is what i do..
1) Parametrize ur current calling class,
2) define a separate class called dbConnect.java there, you have all your parameters that way when there is a change your main program is untouched, and you just need to change the dbconnect.
The call from your current class will be just like
dbConnect.Runsql("sql as a string");
the runSql can then internally call
dbConnect().connect(); //that should do the connection opening.
then create a prepared statement from your string input and call the db.......
this is the implementation that would be best suited for your scenario, you can further parametrize the method to where you can add the database params from the calling xml..so all that needs to be done when the machine is changed or any param is changed is ..modify the xml........not too bad was that.....
Regards
Ravi -
XSLT with java extensions not working with jdk 1.6
Hi,
in as XSL transformation I'm using java functions in some cases. With jdk1.5 this works fine. But when switching to jdk1.6 it seems the java classes are not properly initialized.
See following simple XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java">
<xsl:output method="html" indent="yes" encoding="iso-8859-1"/>
<xsl:template match="/">
<xsl:variable name="counter" select="java:java.util.Vector.new()"/>
<xsl:variable name="temp1" select="java:add($counter,'1')"/>
<xsl:variable name="temp2" select="java:add($counter,'2')"/>
<xsl:variable name="temp3" select="java:add($counter,'3')"/>
<xsl:value-of select="java:size($counter)"/>
<xsl:value-of select="java:toString($counter)"/>
</xsl:template>
</xsl:stylesheet>
With jdk 1.5 it creates following output:
3
[1, 2, 3]
With jdk 1.6 I get:
0
So I can access the object in jdk 1.6 but adding doesn't work.
Anybody has an idea what could be wrong or how to fix this?thanx this is the solution. With this construct
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java">
<xsl:output method="html" indent="yes" encoding="iso-8859-1"/>
<xsl:template match="/">
<xsl:variable name="counter" select="java:java.util.Vector.new()"/>
<xsl:variable name="temp1" select="java:add($counter,'1')"/>
<xsl:variable name="temp2" select="java:add($counter,'2')"/>
<xsl:variable name="temp3" select="java:add($counter,'3')"/>
<xsl:variable name="temp4" select="$temp3"/>
<xsl:value-of select="java:size($counter)"/>
<xsl:value-of select="java:toString($counter)"/>
</xsl:template>
</xsl:stylesheet>
at least the '3' is added to the vector. -
BC-XI V3.0 Message Mapping with Java Class
Hi all
In the Integretion Builder Design i try to import a Java Class in order to convert a source to a target field. I have created an tested the class with the eclipse V3.0.
If i import the source in a customized mapping function i always get the error:
"OFFMANNONLINESHOP_ORDER2SAP_ORDERS05_MSGMAP01 hat keinen Quellkode." (...message..has no source code)
I have also imported the import classes in the "Imported Archives".
This message always appear if the import line for the classes is filled.
Do somebody knows this problem
Message was edited by: Christoph Borst
Message was edited by: Christoph Borst
Message was edited by: Christoph BorstHi ,
select XMLTOOLKIT option in Operation mapping and execute it.
I am not sure we can call java program in XSLT Program,but alternative is copy the code and use it in XSLT mapping it self,that means your XSLT program will become with JAVA extensions.
then in Operation mapping level select SAPXMLTOOL kit option and execute it. i hope it will work. if it is not working then you have deploy some JAXP files on server,because the way execution of XSLT Mpaping program got changed,like when eve you executing XSLT with extnasions( if you are not using XMLTOOL kit option) then you have to use latest version of JAXP.JDK files.
Regards,
Raj -
Hello,
i'm using a freshly installed SQLDeveloper 1.5.1 to a java class to the database. Loading the class works, i can see my class in the tree under java.
Now i wanted to change the source code of my class, so i wanted to drop it in the database. But although SQLDeveloper tells me that the Java Object "MyClass" has been dropped, it is still there in the tree. When i click on the entry in the tree i can still see the code.
What do i need to do to remove my java code from the database?
Thanks for help in advance,
DirkHi ,
select XMLTOOLKIT option in Operation mapping and execute it.
I am not sure we can call java program in XSLT Program,but alternative is copy the code and use it in XSLT mapping it self,that means your XSLT program will become with JAVA extensions.
then in Operation mapping level select SAPXMLTOOL kit option and execute it. i hope it will work. if it is not working then you have deploy some JAXP files on server,because the way execution of XSLT Mpaping program got changed,like when eve you executing XSLT with extnasions( if you are not using XMLTOOL kit option) then you have to use latest version of JAXP.JDK files.
Regards,
Raj -
Hi,
I'm trying to do my first XSLT mapping. For that, I'm testing the SAP example found in XI help: it's a concatenate function between a FirstName and a LastName which uses Java function "Merge".
But... I have this error:
<i>Unable to find resource com/company/group/MappingClass.class (http://test, -1) in the following software component versions: 60530c50-5a4c-11d9-9740-cb29ac1601f1</i>
Do I declare the Java class "MappingClass" or "Merge" function somewhere in XI?
Regards.
Mickael.Unfortunately there are some errors in the documentation:
In the XSLT:
<xsl:if test="function-available('javamap:merge')">
Here "merge" is wrong, write "concat" instead.
In the Java Class:
private MappingTrace trace = zero;
This declaration has to be static, and of course "null" not "zero"
To compile the Java Code, you need the library aii_map_api.jar.
I have put all here:
http://de.geocities.com/stefan_grube/MappingExample.zip
Upload MappingExampleXSLT.jar and MappingExampleJava.jar as "Imported Archive" under "Mapping Objects"
For testing use the file testXSLT.xml.
Regards
Stefan -
Filenet connection with java api not working
I have written the following code to connect content engine and process engine..
MY content engine is connected fine and good...But process engine is not connecting
code:
public String PE_CONNECTION_POINT = "PEConnection";
public Connection ceConnection;
public Domain ceDomain;
public void testFileNetConnection()
* Connect to Content Engine and retrieve a list of
* properties for the base 'Document' document class
ceConnection =
Factory.Connection.getConnection(FILENET_URI);
Subject ceSubject =
UserContext.createSubject(ceConnection, FILENET_USERNAME, FILENET_PASSWORD, null);
UserContext.get().pushSubject(ceSubject);
ceDomain = Factory.Domain.fetchInstance(ceConnection, CE_DOMAIN, null);
ObjectStore ceObjectStore = Factory.ObjectStore.fetchInstance(ceDomain, CE_OBJECTSTORE, null);
ClassDefinition classDef =
Factory.ClassDefinition.fetchInstance(ceObjectStore, "pawan", null);
PropertyDefinitionList properties = classDef.get_PropertyDefinitions();
for (Iterator propertyIter = properties.iterator(); propertyIter.hasNext();) {
PropertyDefinition property = (PropertyDefinition) propertyIter.next();
System.out.println("Property: " + property.get_DisplayName());
//this.instantiateFolder(ceObjectStore);
//this.createFile(ceObjectStore, ceDomain);
UserContext.get().popSubject();
* Connect to Process Engine and retrieve a list of
* Queues for this Connection Point
VWSession peSession = new VWSession();
peSession.setBootstrapCEURI(FILENET_URI);
String[] queueNames = null;
try
peSession.logon(FILENET_USERNAME ,FILENET_PASSWORD,PE_CONNECTION_POINT);
queueNames =
peSession.fetchQueueNames(VWSession.QUEUE_PROCESS);
catch(Exception es){es.printStackTrace();}
for (String queue : queueNames)
System.out.println("Queue: " + queue);
The output of above code I have attached part of successful connection of the content engine and the error of process engine
Property: Ignore Redirect
Property: Entry Template Object Store Name
Property: Entry Template Launched Workflow Number
Property: Entry Template Id
java.lang.NoClassDefFoundError: com/ibm/CORBA/iiop/ObjectURL
at filenet.pe.peorb.client.ORBSession.establishORBSession(ORBSession.java:667)
at filenet.pe.peorb.client.ORBSession.<init>(ORBSession.java:985)
at filenet.vw.server.PECommandsFactory.getPECommands(PECommandsFactory.java:119)
at filenet.vw.api.VWSession.logonByDomain(VWSession.java:864)
at filenet.vw.api.VWSession.logon(VWSession.java:723)
at FileNetConnectionTest.testFileNetConnection(FileNetConnectionTest.java:97)
at FileNetConnectionTest.main(FileNetConnectionTest.java:35)
Caused by: java.lang.NoClassDefFoundError: com/ibm/CORBA/iiop/ObjectURL
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.ibm.websphere.naming.WsnInitialContextFactory.init_implClassCtor(WsnInitialContextFactory.java:172)
at com.ibm.websphere.naming.WsnInitialContextFactory.getInitialContext(WsnInitialContextFactory.java:112)
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.init(Unknown Source)
at javax.naming.InitialContext.<init>(Unknown Source)
at filenet.pe.peorb.client.ORBServiceHelper.getORB(ORBServiceHelper.java:442)
at filenet.pe.peorb.client.ORBServiceHelper.initFromORBRouterInfo(ORBServiceHelper.java:286)
at filenet.pe.peorb.client.ORBServiceHelper.<init>(ORBServiceHelper.java:873)
at filenet.pe.peorb.client.ORBSession.establishORBSession(ORBSession.java:653)
... 6 more
Exception in thread "main" java.lang.NullPointerException
at FileNetConnectionTest.testFileNetConnection(FileNetConnectionTest.java:104)
at FileNetConnectionTest.main(FileNetConnectionTest.java:35)
When to remove the above error I add IBMORB.jar in enviroment variable then I get following error
log4j:WARN The log4j system is not properly configured!
log4j:WARN All ERROR messages will be sent to the system console until proper configuration has been detected.
Exception in thread "main" com.filenet.api.exception.EngineRuntimeException: SECURITY_INVALID_CREDENTIALS: Invalid credentials.
at com.filenet.apiimpl.wsi.ClientOperation.getCredential(ClientOperation.java:303)
at com.filenet.apiimpl.wsi.ClientOperation.setCallContext(ClientOperation.java:194)
at com.filenet.apiimpl.wsi.ClientOperation.start(ClientOperation.java:102)
at com.filenet.apiimpl.wsi.ClientOperation.run(ClientOperation.java:69)
at com.filenet.apiimpl.wsi.ServiceSession.getObjects(ServiceSession.java:242)
at com.filenet.apiimpl.util.SessionHandle.getObjects(SessionHandle.java:334)
at com.filenet.apiimpl.core.Session.callGetObjects(Session.java:121)
at com.filenet.apiimpl.core.Session.executeGetObject(Session.java:325)
at com.filenet.apiimpl.core.Session.getObject(Session.java:339)
at com.filenet.apiimpl.core.IndependentObjectImpl.getObject(IndependentObjectImpl.java:154)
at com.filenet.apiimpl.core.IndependentObjectImpl.refresh(IndependentObjectImpl.java:161)
at com.filenet.api.core.Factory$Domain.fetchInstance(Factory.java:1543)
at FileNetConnectionTest.testFileNetConnection(FileNetConnectionTest.java:69)
at FileNetConnectionTest.main(FileNetConnectionTest.java:35)
Plz help me out..Thank youI'm having the same problem.. I think there's something wrong with it. [fast weight loss tips|http://www.weightlossgidiet.com]
-
SQL user defined type mapping with Java Class type
SECRET_TAB_TYPE is userdefined type in SQL Schema. but accessing this way it is giving invalid column type error(see code below )??
I have made a class with same name attributes as in SQL Type
Connection con = DriverManager.getConnection(URL,Username, Password );
java.util.Map map = con.getTypeMap();
map.put("SchemaName.SECRET_TAB_TYPE",Class.forName("SECRET_TAB_TYPE"));
CallableStatement pstmt = con.prepareCall( "{ call smartapi.FetchSharedSecret(?,?,?,?,?,?) }" );
pstmt.setString(1,"SM");
pstmt.setString(2,"BT");
pstmt.setString(3,"COM");
pstmt.registerOutParameter(4, Types.JAVA_OBJECT);//
pstmt.registerOutParameter(5,Types.VARCHAR);
pstmt.executeQuery();
secret_tab=(SECRET_TAB_TYPE)pstmt.getObject(4);
message= pstmt.getString(5);STATS_T_TEST_
docs.oracle.com/cd/B19306_01/server.102/b14200/functions157.htm
STATS_T_TEST_ONE: A one-sample t-test
STATS_T_TEST_PAIRED: A two-sample, paired t-test (also known as a crossed t-test)
STATS_T_TEST_INDEP: A t-test of two independent groups with the same variance (pooled variances)
STATS_T_TEST_INDEPU: A t-test of two independent groups with unequal variance (unpooled variances) -
Problem when using XSLT Mapping with Java Methods.
<?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>incomplete post
-
I lately have found problems with Java apps not working correctly. For example, in Yahoo Widgets I cannot get any widget preferences to display; in Apple's Java Preferences for J2SE 5.0 the preference window opens but is blank; and in JBidwatcher the buttons are missing in main and preference windows.
When I log in as another user I find all those apps work properly, so it seems to be something wrong within my User folder. I tried reinstalling the Java J2SE50ReIease4 but it didn't help. Is there something I can delete and/or reinstall to fix this problem?Ditto here,
I made the mistake of thinking I could throw away the preferences in the Java folder and new pref's would automatically replace the missing pref's, much to my surprise no such thing happened. My settup is the same as yours, except my OS is 10.4.8.
Someone please help.
Thanks,
BJZTX
G5 D2GHz Mac OS X (10.4.7) G4 Notebook 10.3 -
Java Error in RFC Lookup in XSLT Mapping usinf Java helper class
Hi All,
I am doing RFC Lookup in XSLT Mapping using Java Helper class.
The Lookup works fine when called one RFC at a time However my requirement is I want to do 2 Lookups.
Both Lookups works when done individually however when I call both lookups in one mapping I get following error "javax.xml.transform.TransformerException: DOMSource whose Node is null."
Following is the code I have written in XSLT for the lookup:
<xsl:template name="Lookup_1">
<xsl:param name="STDPN"/>
<rfc:RFC_READ_TABLE>
<QUERY_TABLE>KNA1</QUERY_TABLE>
<OPTIONS><item><TEXT>
<xsl:value-of select="$STDPN"/>
</TEXT></item>
</OPTIONS>
<FIELDS>
<item>
<FIELDNAME>KUNNR</FIELDNAME>
</item>
</FIELDS>
</rfc:RFC_READ_TABLE>
</xsl:variable>
<xsl:variable name="response" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request, 'BS_D, 'cc_RfcLookup', $inputparam)"/>
<xsl:element name="STDPN">
<xsl:value-of select="$response//DATA/item/WA"/>
</xsl:element>
</xsl:template>
<xsl:template name="Lookup_2">
<xsl:param name="BELNR"/>
<xsl:variable name="Query">AGMNT = '<xsl:value-of select="$BELNR"/>'</xsl:variable>
<xsl:variable name="request1">
<rfc:RFC_READ_TABLE>
<QUERY_TABLE>ZTABLE</QUERY_TABLE>
<OPTIONS><item><TEXT>
<xsl:value-of select="$Query"/>
</TEXT></item>
</OPTIONS>
<FIELDS>
<item>
<FIELDNAME>KUNAG</FIELDNAME>
</item>
</FIELDS>
</rfc:RFC_READ_TABLE>
</xsl:variable>
<xsl:variable name="response1" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request1, 'BS_D','cc_RfcLookup', $inputparam)"/>
<xsl:element name="BELNR">
<xsl:value-of select="$response1//DATA/item/WA"/>
</xsl:element>
</xsl:template>
My Question: Am I doing anything wrong? Or Is it possible to call multiple lookups in one XSLT?
Thanks and Regards,
AtulHi Atul,
I had the same problem like you had.
The main Problem is that with the example code the request variable is created as NodeList object. In XSLT a variable is somekind of a constant and can't be changed. As the request object is empty after the first request the programm fails at the following line:
Source source = new DOMSource(request.item(0));
So I've created a workaround for this problem.
In the call of the template I've put the request as a parameter object at the template call:
<xsl:with-param name="req">
<rfc:PLM_EXPLORE_BILL_OF_MATERIAL xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
<APPLICATION>Z001</APPLICATION>
<FLAG_NEW_EXPLOSION>X</FLAG_NEW_EXPLOSION>
<MATERIALNUMBER><xsl:value-of select="value"/></MATERIALNUMBER>
<PLANT>FSD0</PLANT>
<VALIDFROM><xsl:value-of select="//Recordset/Row[name='DTM-031']/value"/></VALIDFROM>
<BOMITEM_DATA/>
</rfc:PLM_EXPLORE_BILL_OF_MATERIAL>
</xsl:with-param>
With this change the request will be provided as a String object and not as a NodeList object.
Afterwards the RfcLookup.java has to be changed to the following:
package com.franke.mappings;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.sap.aii.mapping.lookup.Channel;
import com.sap.aii.mapping.api.StreamTransformationConstants;
import com.sap.aii.mapping.api.AbstractTrace;
import com.sap.aii.mapping.lookup.RfcAccessor;
import com.sap.aii.mapping.lookup.LookupService;
import com.sap.aii.mapping.lookup.XmlPayload;
* @author Thorsten Nordholm Søbirk, AppliCon A/S
* Helper class for using the XI Lookup API with XSLT mappings for calling RFCs.
* The class is generic in that it can be used to call any remote-enabled
* function module in R/3. Generation of the XML request document and parsing of
* the XML response is left to the stylesheet, where this can be done in a very
* natural manner.
* TD:
* Changed the class that request is sent as String, because of IndexOutOfBound-exception
* When sending multiple requests in one XSLT mapping.
public class RfcLookup {
* Execute RFC lookup.
* @param request RFC request - TD: changed to String
* @param service name of service
* @param channelName name of communication channel
* @param inputParam mapping parameters
* @return Node containing RFC response
public static Node execute( String request,
String service,
String channelName,
Map inputParam)
AbstractTrace trace = (AbstractTrace) inputParam.get(StreamTransformationConstants.MAPPING_TRACE);
Node responseNode = null;
try {
// Get channel and accessor
Channel channel = LookupService.getChannel(service, channelName);
RfcAccessor accessor = LookupService.getRfcAccessor(channel);
// Serialise request NodeList - TD: Not needed anymore as request is String
/*TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
Source source = new DOMSource(request.item(0));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
StreamResult streamResult = new StreamResult(baos);
transformer.transform(source, streamResult);*/
// TD: Add xml header and remove linefeeds for the request string
request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+request.replaceAll("[\r\n]+", "");
// TD: Get byte Array from request String to send afterwards
byte[] requestBytes = request.getBytes();
// TD: Not used anymore as request is String
//byte[] requestBytes = baos.toByteArray();
trace.addDebugMessage("RFC Request: " + new String(requestBytes));
// Create input stream representing the function module request message
InputStream inputStream = new ByteArrayInputStream(requestBytes);
// Create XmlPayload
XmlPayload requestPayload =LookupService.getXmlPayload(inputStream);
// Execute lookup
XmlPayload responsePayload = accessor.call(requestPayload);
InputStream responseStream = responsePayload.getContent();
TeeInputStream tee = new TeeInputStream(responseStream);
// Create DOM tree for response
DocumentBuilder docBuilder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = docBuilder.parse(tee);
trace.addDebugMessage("RFC Response: " + tee.getStringContent());
responseNode = document.getFirstChild();
} catch (Throwable t) {
StringWriter sw = new StringWriter();
t.printStackTrace(new PrintWriter(sw));
trace.addWarning(sw.toString());
return responseNode;
* Helper class which collects stream input while reading.
static class TeeInputStream extends InputStream {
private ByteArrayOutputStream baos;
private InputStream wrappedInputStream;
TeeInputStream(InputStream inputStream) {
baos = new ByteArrayOutputStream();
wrappedInputStream = inputStream;
* @return stream content as String
String getStringContent() {
return baos.toString();
/* (non-Javadoc)
* @see java.io.InputStream#read()
public int read() throws IOException {
int r = wrappedInputStream.read();
baos.write(r);
return r;
Then you need to compile and upload this class and it should work.
I hope that this helps you.
Best regards
Till
Maybe you are looking for
-
Error while creating a system object for R3 in portal
Hi, I am getting error while trying to create a system object in portal. Following are the details I used : Under WAS... Web AS Host Name :<XXXX>:8001 Web AS path: /sap/bc/bsp/sap/ Web AS protocol : http Under User management: Authentication Ticket T
-
Batch image processing from bridge cause photoshop to crash
But first it goes ahead and processes the images selected in Bridge. All of them like even over a hundred at a time (great time saver!). Then displays a message for each image in one error dialogue saying, "Sorry Photoshop couldn't process the image.
-
SCOM SQL MP 6.4.1.0 - Alert CPUUsagePercent2008DataSource.ps1
Hi Everyone, Can anyone please help me with the following issue: Forced to terminate the following PowerShell script because it ran past the configured timeout 200 seconds. This alert is showing for the following script(s): CPUUsagePercentDataSource.
-
Back order functionality in B2B
Hi How the back order functionality works in B2B? Any specific settings? Regards
-
Giving file path in unix and windows
hi, i'm having problem with reading file from both windows and unix as now i give if (os == win) file="mydir\\mydir1\\myfile" else file="mydir/mydir1/myfile" wherei get mydir* from environment. and then open that file. but i feel the above is clumsy