Mapping struct dataype in C to Java JNI

Do anyone have idea how to map struct datatype in C to Java JNI?
I've got idea and examples of mapping primitive datatype and array in C to Java JNI but none for struct datatype in C?
Hope I can got an example of it! Thanks!!!

The first way - by the book
Read Sheng Liang's book (downloadable from ftp://ftp.javasoft.com/docs/specs/jni.pdf )
In brief - and explaining only the main steps - no detailed instructions - please read the book
You want to return an array of the following objects (they have only primitive data, for easing the explanation)
//-- C++
struct MyData {
    int firstField;
    char *secondField;
//-- Java
public class MyData {
    public int firstField;
    public String secondField;
}in the native Java method "doSomething" of the class MyProgram
public class MyProgram {
    static {
        System.loadLibrary ("myjni");
    public static native MyData[] doSomething() ;
}You will have to call JNI functions for creating the MyData[] array, for creating individual MyData objects, and for setting the individual fields of each MyData object. Very boring indeed.
The second way - the hard one
Instead of returning a Java array of Java objects, study the serialization format of Java, and return a Java array of bytes. Then use ByteArrayInputStream and ObjectInputStream, or DataInputStream, for deserializing the objects you do need to get in your program. It will be slower than creating directly the Java objects in your C++ program, but you can save a few lines of code in your C++ program. (You will maintain the program yourself, don't you?)
The third way - the lazy one
Instead of returning a Java array of Java objects, return a Java String (it could be a XML-formatted string, or a string using delimiters - what you think that is easier to encode in C++ and decode in Java.)
The third way - the better way
Use the SWIG framework ( http://www.swig.org ). Your code will be very maintenable, you will not have to deal with JNI issues (there are lots and lots of JNI details you will have to bother with, solve all that problems with SWIG). Take care with spelling - SWIG is not SWING.

Similar Messages

  • Interface Mapping run time error...java.lang.nullpointerException  thrown

    Hi,
    I am trying to create a simple f2f scenairo and when I tested the configuration xi throws this message as :
    Interface Mapping run time error...java.lang.nullpointerException  thrown during application mapping.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
    - <SOAP:Header>
    - <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
      <SAP:MessageId>9E0AD300-9F93-11DB-8770-000D60514DD2</SAP:MessageId>
      <SAP:TimeSent>2007-01-09T03:43:49Z</SAP:TimeSent>
    - <SAP:Sender>
      <SAP:Service>CAMEL_BS_01</SAP:Service>
      <SAP:Interface namespace="http://kia.com/fiel2file">Source01_MI</SAP:Interface>
      </SAP:Sender>
    - <SAP:Receiver>
      <SAP:Party agency="" scheme="" />
      <SAP:Service>Camel_BService_01</SAP:Service>
      <SAP:Interface namespace="http://kia.com/fiel2file">Target01_MI</SAP:Interface>
    - <SAP:Mapping notRequired="M">
      <SAP:ObjectId>j5qiPBwVPU2yonkPwhdt/g==</SAP:ObjectId>
      <SAP:SWCV>tR26oJ7nEdu5oM/vCXwv+g==</SAP:SWCV>
      <SAP:SP>-1</SAP:SP>
      </SAP:Mapping>
      </SAP:Receiver>
      <SAP:Interface namespace="http://kia.com/fiel2file">Source01_MI</SAP:Interface>
      </SAP:Main>
    - <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:QualityOfService>ExactlyOnce</SAP:QualityOfService>
      </SAP:ReliableMessaging>
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_Equipment_MM_</SAP:P1>
      <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
      <SAP:P3>RuntimeException in Message-Mapping transformatio~</SAP:P3>
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>com.sap.aii.utilxi.misc.api.BaseRuntimeException thrown during application mapping com/sap/xi/tf/_Equipment_MM_: RuntimeException in Message-Mapping transformatio~</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    - <SAP:HopList xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
    - <SAP:Hop timeStamp="2007-01-09T03:43:49Z" wasRead="false">
      <SAP:Engine type="AE">af.pi7.gbdci550</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XIRA</SAP:Adapter>
      <SAP:MessageId>9E0AD300-9F93-11DB-8770-000D60514DD2</SAP:MessageId>
      <SAP:Info />
      </SAP:Hop>
    - <SAP:Hop timeStamp="2007-01-09T03:43:50Z" wasRead="false">
      <SAP:Engine type="IS">is.03.gbdci550</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XI</SAP:Adapter>
      <SAP:MessageId>9E0AD300-9F93-11DB-8770-000D60514DD2</SAP:MessageId>
      <SAP:Info>3.0</SAP:Info>
      </SAP:Hop>
      </SAP:HopList>
    - <SAP:RunTime xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Date>20070108</SAP:Date>
      <SAP:Time>224350</SAP:Time>
      <SAP:Host>gbdci550</SAP:Host>
      <SAP:SystemId>PI7</SAP:SystemId>
      <SAP:SystemNr>03</SAP:SystemNr>
      <SAP:OS>AIX</SAP:OS>
      <SAP:DB>DB6</SAP:DB>
      <SAP:Language />
      <SAP:ProcStatus>014</SAP:ProcStatus>
      <SAP:AdapterStatus>000</SAP:AdapterStatus>
      <SAP:User>PIAFUSER</SAP:User>
      <SAP:TraceLevel>1</SAP:TraceLevel>
      <SAP:LogSeqNbr>002</SAP:LogSeqNbr>
      <SAP:RetryLogSeqNbr>000</SAP:RetryLogSeqNbr>
      <SAP:PipelineIdInternal>SAP_CENTRAL</SAP:PipelineIdInternal>
      <SAP:PipelineIdExternal>CENTRAL</SAP:PipelineIdExternal>
      <SAP:PipelineElementId>5EC3C53B4BB7B62DE10000000A1148F5</SAP:PipelineElementId>
      <SAP:PipelineStartElementId>5EC3C53B4BB7B62DE10000000A1148F5</SAP:PipelineStartElementId>
      <SAP:PipelineService>PLSRV_MAPPING_REQUEST</SAP:PipelineService>
      <SAP:QIdInternal>XBTOW0__0001</SAP:QIdInternal>
      <SAP:CommitActor>X</SAP:CommitActor>
      <SAP:SplitNumber>0</SAP:SplitNumber>
      <SAP:NumberOfRetries>0</SAP:NumberOfRetries>
      <SAP:NumberOfManualRetries>0</SAP:NumberOfManualRetries>
      <SAP:TypeOfEngine client="200">CENTRAL</SAP:TypeOfEngine>
      <SAP:PlsrvExceptionCode />
      <SAP:EOReferenceRuntime type="TID">097C2FFA403445A30F7600CE</SAP:EOReferenceRuntime>
      <SAP:EOReferenceInbound type="TID" />
      <SAP:EOReferenceOutbound type="TID" />
      <SAP:MessageSizePayload>168</SAP:MessageSizePayload>
      <SAP:MessageSizeTotal>2608</SAP:MessageSizeTotal>
      <SAP:PayloadSizeRequest>168</SAP:PayloadSizeRequest>
      <SAP:PayloadSizeRequestMap>0</SAP:PayloadSizeRequestMap>
      <SAP:PayloadSizeResponse>0</SAP:PayloadSizeResponse>
      <SAP:PayloadSizeResponseMap>0</SAP:PayloadSizeResponseMap>
      <SAP:Reorganization>INI</SAP:Reorganization>
      <SAP:AdapterInbound>AENGINE</SAP:AdapterInbound>
      <SAP:InterfaceAction>DEL</SAP:InterfaceAction>
      <SAP:RandomNumber>67</SAP:RandomNumber>
      <SAP:AckStatus>000</SAP:AckStatus>
      <SAP:SkipReceiverDetermination />
      <SAP:Sender_Agreement_GUID>49574D50A74F3F5D902E20831759594C</SAP:Sender_Agreement_GUID>
      <SAP:Serialize_Children>X</SAP:Serialize_Children>
      </SAP:RunTime>
    - <SAP:PerformanceHeader xmlns:SAP="http://sap.com/xi/XI/Message/30">
    - <SAP:RunTimeItem>
      <SAP:Name type="ADAPTER_IN">INTEGRATION_ENGINE_HTTP_ENTRY</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.025474</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="ADAPTER_IN">INTEGRATION_ENGINE_HTTP_ENTRY</SAP:Name>
      <SAP:Timestamp type="end" host="gbdci550">20070109034350.064329</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="CORE">INTEGRATION_ENGINE</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.067038</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="CORE">INTEGRATION_ENGINE</SAP:Name>
      <SAP:Timestamp type="end" host="gbdci550">20070109034350.085552</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="DBQUEUE">DB_ENTRY_QUEUING</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.085573</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="DBQUEUE">DB_ENTRY_QUEUING</SAP:Name>
      <SAP:Timestamp type="end" host="gbdci550">20070109034350.472198</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="PLSRV">PLSRV_RECEIVER_DETERMINATION</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.473649</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="PLSRV">PLSRV_RECEIVER_DETERMINATION</SAP:Name>
      <SAP:Timestamp type="end" host="gbdci550">20070109034350.483159</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="PLSRV">PLSRV_INTERFACE_DETERMINATION</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.483341</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="PLSRV">PLSRV_INTERFACE_DETERMINATION</SAP:Name>
      <SAP:Timestamp type="end" host="gbdci550">20070109034350.48668</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="PLSRV">PLSRV_RECEIVER_MESSAGE_SPLIT</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.486921</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="PLSRV">PLSRV_RECEIVER_MESSAGE_SPLIT</SAP:Name>
      <SAP:Timestamp type="end" host="gbdci550">20070109034350.49182</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="DBQUEUE">DB_SPLITTER_QUEUING</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.491835</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="DBQUEUE">DB_SPLITTER_QUEUING</SAP:Name>
      <SAP:Timestamp type="end" host="gbdci550">20070109034350.720028</SAP:Timestamp>
      </SAP:RunTimeItem>
    - <SAP:RunTimeItem>
      <SAP:Name type="PLSRV">PLSRV_MAPPING_REQUEST</SAP:Name>
      <SAP:Timestamp type="begin" host="gbdci550">20070109034350.721545</SAP:Timestamp>
      </SAP:RunTimeItem>
      </SAP:PerformanceHeader>
    - <SAP:Diagnostic xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:TraceLevel>Information</SAP:TraceLevel>
      <SAP:Logging>Off</SAP:Logging>
      </SAP:Diagnostic>
    - <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30">
      <Trace level="1" type="T">Party normalization: sender</Trace>
      <Trace level="1" type="T">Sender scheme external = XIParty</Trace>
      <Trace level="1" type="T">Sender agency external = http://sap.com/xi/XI</Trace>
      <Trace level="1" type="T">Sender party external =</Trace>
      <Trace level="1" type="T">Sender party normalized =</Trace>
      <Trace level="1" type="T">Party normalization: receiver</Trace>
      <Trace level="1" type="T">Receiver scheme external =</Trace>
      <Trace level="1" type="T">Receiver agency external =</Trace>
      <Trace level="1" type="T">Receiver party external =</Trace>
      <Trace level="1" type="T">Receiver party normalized =</Trace>
      <Trace level="1" type="B" name="CL_XMS_HTTP_HANDLER-HANDLE_REQUEST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">XMB was called with URL /sap/xi/engine?type=entry</Trace>
      <Trace level="1" type="T">COMMIT is done by XMB !</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-SET_START_PIPELINE" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="SXMBCONF-SXMB_GET_XMB_USE" />
      <Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV" />
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">XMB entry processing</Trace>
      <Trace level="1" type="T">system-ID = PI7</Trace>
      <Trace level="1" type="T">client = 200</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = PIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2007-01-09T03:43:50Z CET</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">* *</Trace>
      <Trace level="1" type="T">****************************************************</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Message-GUID = 9E0AD3009F9311DB8770000D60514DD2</Trace>
      <Trace level="1" type="T">PLNAME = CENTRAL</Trace>
      <Trace level="1" type="T">QOS = EO</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_ASYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline = CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
      <Trace level="1" type="T">Get definition of internal pipeline = SAP_CENTRAL</Trace>
      <Trace level="1" type="T">Queue name : XBTI0008</Trace>
      <Trace level="1" type="T">Generated prefixed queue name = XBTI0008</Trace>
      <Trace level="1" type="T">Schedule message in qRFC environment</Trace>
      <Trace level="1" type="T">Setup qRFC Scheduler OK!</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Going to persist message</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">- Exit CALL_PIPELINE_ASYNC</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="1" type="T">system-ID = PI7</Trace>
      <Trace level="1" type="T">client = 200</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = PIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2007-01-09T03:43:50Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
      <Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
    - <Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
    - <Trace level="1" type="B" name="PLSRV_INTERFACE_DETERMINATION">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">
    - <Trace level="1" type="B" name="CL_ID_PLSRV-ENTER_PLSRV">
      <Trace level="1" type="T">I N T E R F A C E - D E T E R M I N A T I O N</Trace>
      <Trace level="1" type="T">Cache Content is up to date</Trace>
      </Trace>
      </Trace>
      </Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
      <Trace level="1" type="B" name="PLSRV_RECEIVER_MESSAGE_SPLIT" />
    - <!--  ************************************
      -->
    - <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_PLSRV_RECEIVER_SPLIT-ENTER_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">number of receivers: 1</Trace>
      <Trace level="1" type="T">Single-receiver split case</Trace>
      <Trace level="1" type="T">Post-split internal queue name = XBTOW0__0001</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Persisting single message for post-split handling</Trace>
      <Trace level="1" type="T" />
      <Trace level="1" type="T">Going to persist message + call qRFC now...</Trace>
      <Trace level="1" type="T">NOTE: The following trace entries are always lacking</Trace>
      <Trace level="1" type="T">- Exit WRITE_MESSAGE_TO_PERSIST</Trace>
      <Trace level="1" type="T">Async barrier reached. Bye-bye !</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-PERSIST_READ_MESSAGE" />
      <Trace level="1" type="T">Note: the following trace entry is written delayed (after read from persist)</Trace>
      <Trace level="1" type="B" name="SXMS_ASYNC_EXEC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="T">Starting async processing with pipeline CENTRAL</Trace>
      <Trace level="1" type="T">system-ID = PI7</Trace>
      <Trace level="1" type="T">client = 200</Trace>
      <Trace level="1" type="T">language = E</Trace>
      <Trace level="1" type="T">user = PIAFUSER</Trace>
      <Trace level="1" type="Timestamp">2007-01-09T03:43:50Z CET</Trace>
      <Trace level="1" type="T">----
    </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />
      <Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>
      <Trace level="1" type="T">Start with pipeline element PLEL= 5EC3C53B4BB7B62DE10000000A1148F5</Trace>
      <Trace level="1" type="B" name="PLSRV_MAPPING_REQUEST" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />
    - <!--  ************************************
      -->
      <Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV" />
    - <!--  ************************************
      -->
      <Trace level="1" type="T">Interface Mapping http://kia.com/fiel2file Equipment_IM_Outbound</Trace>
      <Trace level="1" type="T">RuntimeException during appliction Java mapping com/sap/xi/tf/_Equipment_MM_</Trace>
      <Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Equipment_MT/MaterialNumber. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:403) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java(Compiled Code)) at $Proxy184.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.listen(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.work(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.loop(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.run(JCO.java:8044) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code)) Root Cause: com.sap.aii.mappingtool.tf3.IllegalInstanceException: Cannot produce target element /ns0:Equipment_MT/MaterialNumber. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code)) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code)) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java(Compiled Code)) at $Proxy184.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.listen(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.work(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.loop(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.run(JCO.java:8044) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code))</Trace>
      <Trace level="1" type="T">Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_Equipment_MM_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Equipment_MT/MaterialNumber. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd</Trace>
      <Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_Equipment_MM_: com.sap.aii.utilxi.misc.api.BaseRuntimeException; RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Equipment_MT/MaterialNumber. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:73) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java(Compiled Code)) at $Proxy184.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.listen(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.work(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.loop(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.run(JCO.java:8044) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code)) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns0:Equipment_MT/MaterialNumber. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:403) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java(Compiled Code)) at $Proxy184.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.listen(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.work(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.loop(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.run(JCO.java:8044) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code)) Root Cause: com.sap.aii.mappingtool.tf3.IllegalInstanceException: Cannot produce target element /ns0:Equipment_MT/MaterialNumber. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code)) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code)) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.GeneratedMethodAccessor291.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java(Compiled Code)) at $Proxy184.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code)) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code)) at java.lang.reflect.Method.invoke(Method.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.call(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java(Compiled Code)) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequest(RFCJCOServer.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.dispatchRequest(JCO.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.dispatchRequest(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.MiddlewareJRfc$Server.listen(MiddlewareJRfc.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.listen(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.work(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.loop(JCO.java(Compiled Code)) at com.sap.mw.jco.JCO$Server.run(JCO.java:8044) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code))</Trace>
      <Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>
      </Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />
      <Trace level="1" type="System_Error">Error exception return from pipeline processing!</Trace>
      <Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />
    - <!--  ************************************
      -->
      </SAP:Trace>
      </SOAP:Header>
    - <SOAP:Body>
    - <SAP:Manifest xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
    - <SAP:Payload xlink:href="cid:[email protected]">
      <SAP:Name>MainDocument</SAP:Name>
      <SAP:Description />
      <SAP:Type>Application</SAP:Type>
      </SAP:Payload>
      </SAP:Manifest>
      </SOAP:Body>
      </SOAP:Envelope>
    Please I request to give me some hint how to troubleshoot this issue.
    Thanks a lot,
    Srujan

    Hi, i have the same type of error when testing configuration, but it seems that the mapping even doesn't start :
    i'm creating an EBP to XCBL scenario, so it's a RFC->XI->XCBL 3.5
    Here is the Java exception
    Mappage d'interface
    Can someone be helpful for that ?
    Regards
    Laurent
    Message was edited by:
            Laurent Gitton

  • How can I get the address from a map struct?

    Hello,
    Who knows how to get the address from a map struct, and what's the meaning of the eighth argument (addr) of ufs_getpage() ?
    I developed a modular to encrypt certain files. The approach is: I�fll change the vnode's v_op pointer when opening a file which should be decoded. I make the vnode->v_op point to my own ops struct. I made a new ufs_getpage function like below:
    static int newufs_getpage(struct vnode* vp, offset_t off, size_t len,
    uint_t* protp, page_t* plarr[], size_t plsz,
    struct seg* seg, caddr_t addr, enum seg_rw rw,
    struct cred* cr)
    call old ufs_getpage(vp, off, len, protp, plarr, plsz, seg, addr, rw, cr);
    decode the page.
    After reading some source code about kernel, I know the plarr is the page which is read from the disk. But I don't know how to get the address of the page. I tried like below, but failed.
    caddr_t baseaddr;
    page_t *pp;
    pp = plarr[0];
    �c�c
    baseaddr = hat_kpm_page2va(pp, 0);
    �c�c
    I logged the baseaddr:
    cmn_err(CE_NOTE, �gbaseaddr %s�h, baseaddr);
    or
    char _buff[8];
    int _len;
    copyinstr(baseaddr, buff, 8, &len);
    cmn_err(CE_NOTE, �gbaseaddr %s�h, _buff);
    But I found the baseaddr is not what I want. Is there something wrong with my approach? What's the meaning of the eighth argument (addr) of ufs_getpage()
    By the way, is there any documents concerning to the functions such as segvn_fault�Appmapin/ppmapout except the source code?

    Hiya,
    I think the address is the faulting address in segmap.
    But why not have a look at the file event management framework in NFSv4:
    http://cvs.opensolaris.org/source/xref/on/usr/src/uts/common/fs/fem.c
    To support NFSv4 delegation, FEM provides hooks to intercept filesystem operations.
    Maybe you could use that to implement what you want? Probably safer than doing what you are doing now. Go see fem_install().
    Cheers,
    R.
    Message was edited by:
    ralphyt

  • How to map javax.xml.datatype.XMLGregorianCalendar to java.util.Calendar

    Hi ,
    How to map javax.xml.datatype.XMLGregorianCalendar to java.util.Calendar so that i can use pass String parameter in YYYY-MM-DD format to my Web service.
    I generated the schema classes using Jaxb 2.1.5.
    Please give suggestion
    Thanks in Advance.

    toGregorianCalendar().getTime()

  • Using java jni

    Hello,
    I'm trying to figure out a way to start small Java-Programs from within
    Labview 6.0.1. Does anybody know how to do this? Every time I use the
    call dll-function to invoke the java-jni api Labview crashes. Invoking
    Java via the active-x plugin doesn't work either.
    Any suggestions are welcome. Thanks.
    Norman Südekum

    Norman,
    Try updating to LabVIEW 6.0.2 to get all of the ActiveX fixes and try the ActiveX method again. (You cannot do this if you only have the Evaluation version.) You can also call java from the System Exec.vi if you do not need data directly back (you can transfer it many other ways: files, TCP, pipes, etc).
    Also, see the following:
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RNAME=ViewQuestion&HOID=506500000008000000102D0000&ECategory=LabVIEW.LabVIEW+General
    http://digital.ni.com/public.nsf/websearch/BEE812007BA2A9B486256BC80068A49A?OpenDocument
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://www.ni.com/ask

  • If I use "JSP - Java - JNI" ??

    When the Java -> JNI -> C is writen and tested OK.
    How can I use JSP to import the Class into JSP page???
    I tried. But failure.
    Have someone show a sample?? help~ Q_Q

    Thanks you again... ^_^ to help
    All My step and files are shown below:
    --[1 step]--------[ JSP file ]--------------------------
    <jsp:useBean id="myBean" scope="page" class="Counter"/>
    <jsp:getProperty name="myBean" property="count"/>
    --[2 step]---------[ write JavaBean ]-----------------
    public class Counter{
    public Counter(){}
    public native String printt(); // It's Native entry
    public static void main(String[] args){ // This just for Java in DOS runable.
    new Counter().printt();
    public String getCount(){
    return(new Counter().printt());
    @@@@@@@@@@@@@@@@ <= the server will call getCount() method, which the DLL's create the printt() method.it may cause the 1st errors because can't find printt().I guess.
    public void setCount(int newCount){}
    static{
    System.loadLibrary("HelloWorld"); //LOAD the DLL's from C create
    ---[3 step]------ [ Create Counter.h ] -- CMD:[ javah - jni Counter ]---------
    /* DO NOT EDIT THIS FILE - it is machine generated */
    #include <jni.h>
    /* Header for class Counter */
    #ifndef IncludedCounter
    #define IncludedCounter
    #ifdef __cplusplus
    extern "C" {
    #endif
    * Class: Counter
    * Method: printt
    * Signature: ()Ljava/lang/String;
    JNIEXPORT jstring JNICALL Java_Counter_printt
    (JNIEnv *, jobject);
    #ifdef __cplusplus
    #endif
    #endif
    ----[4 step]--- [Write HelloWorld.c ]-------------
    #include <jni.h>
    #include <stdio.h>
    #include "Counter.h"
    JNIEXPORT jstring JNICALL
    Java_Counter_printt(JNIEnv *env,jobject this){
    printf("Hello World!\n hihihi success!");
    return;
    ---[5 step]-- [use VC++ 5 to create the DLL from HelloWorld.c ]
    ---[6 step] ----- The result that Server says -------
    500 Internal Server Error
    java.lang.NoClassDefFoundError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:195)
    ...

  • GNU Java jni.h is non-compliant

    Just a warning, and to add to the long list of things that are wrong with GNU Java, its jni.h file doesn't conform to the JNI specification. Several dozen 'const's are missing on method parameters, and jboolean and jbyte both map to the same native type. Both these can cause spurious compile errors with JNI-standard-conforming C or C++ code.

    All the j* types defined in the proper jni.h have distinct types. This makes it possible to use C++ template functions creatively to unite all the various JNI calls that differ only by argument type and name, so you can forget about 90% of the JNI API completely. When GNU Classpath gets this wrong it breaks the above.

  • Xslt mapping can't get date from java

    I am trying to get the current date/time from java in my xsl mapping. I can't seem to get it to work. This is the code I am using in my xsl file.
    <IDField>
      <xsl:template name="currentTime" xmlns:date="java:java.util.Date">
    <xsl:value-of select="date:new()"/>
      </xsl:template>
    </IDField>
    also tried
    <xsl:value-of select="java:java.util.Date:new()"/>
    I simply want to put the current date time in the IDField. What am I doing wrong? I am currently getting back a xslt mapping error. Here's the error....
    Transformer configuration exception occurred when loading XSLT
    I've tried a few different ways, but none have worked. What I'm looking for is the specific code that would display the date/time.
            - Emmett

    I figured it out. The main problem was that I didn't have the following in this line....
    <xsl:stylesheet version="1.0" <b>xmlns:java="http://xml.apache.org/xslt/java" </b>xmlns:xsl="http://www.w3.org/1999/XSL/Transform" .....>
    Once I included xmlns:java="http://xml.apache.org/xslt/java" all the java functions were available. I also found the great date template. In case anyone wants to check it out here it is...
    <xsl:template name="today"
                  xmlns:cal="xalan://java.util.GregorianCalendar">
      <xsl:variable name="rightNow" select="cal:getInstance()" />
      <!-- The GregorianCalendar class counts months from zero
           so we have to add one to get the customary number -->
      <xsl:variable name="month" select="cal:get($rightNow, 2) + 1" />
      <xsl:variable name="day" select="cal:get($rightNow, 5) " />
      <xsl:variable name="year" select="cal:get($rightNow, 1)" />
      <xsl:value-of
       select="$year" />-<xsl:value-of
       select="$month" />-<xsl:value-of
       select="$day" />
    </xsl:template>
    I found this template here...
    http://cafeconleche.org/books/xmljava/chapters/ch17s03.html
               - Emmett

  • How to display Map for viewing in browser using Java

    I am fidning a solution for displaying political maps in browser using Java technology.
    Is ther anybody with a solution.
    Waiting for your respone.
    Regards
    Mithun

    palanithendral wrote:
    Hi,
    Our application using in English, German, Franch and chinese.You have several different idioms in your application and have not accurately identified where the actual problem is. You have all of the following
    -database
    -http
    -excel
    -excel in http
    -display on the target computer
    The first step with these sorts of problem is to identify where the problem actually occurs.
    String chineseCharacter=""; // chineseCharacter like &#38263;&#38271;&#29248;&#24202;&#26481;&#19996;&#24447;&#20315;. This chinese data coming from oracle database..A good theory. Now explain how you proved that that is what is coming from the database.
    After export the data to excel show the result for 長长牀床東东彿佛.As another example. Presumably you are referring to what the browser on the target computer displays. Your theory is that that computer and that browser (together) will display the correct information if they had the correct data. How did you prove that?

  • Java Mapping Error - Unable to instantiate the Java class

    Hi,
    I am trying out a Java Mapping scenario.
    The code worked fine in eclipse.i could get the desired output.
    but when i tried it out in XI ....i got the following error in moni:
    *Unable to instantiate the Java class*
    <?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>Application</SAP:Category>
      <SAP:Code area="MAPPING">CANNOT_INSTANCIATE_CLASS</SAP:Code>
      <SAP:P1>JavaMapping</SAP:P1>
      <SAP:P2>http://www.sdsdsd.com/XI/Sales/T~</SAP:P2>
      <SAP:P3>3bd13b30-6300-11dc-b9f1-f0050aa5c91a</SAP:P3>
      <SAP:P4>-1</SAP:P4>
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Unable to instantiate the Java class JavaMapping (http://www.sdsdsd.com/XI/Sales/T~, 3bd13b30-6300-11dc-b9f1-f0050aa5c91a, -1)</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Please help me out with this error.

    Hi Anu,
    Currently I am also facing the same Unable to instantiate the Java class  same java class is working fine in eclipse .
    Could you please confirm Is this because of version mismatch that in Eclipse JAVA and SAP JAVA ?
    Thanks in Advance.
    Best,
    Srinivas

  • How to root out memory leak with  Java JNI & Native BDB 11g ?

    We are testing a web application using the 32-bit compiled native 11g version of BDB (with replication) under 32-bit IBM 1.5 JVM via JNI under 64-bit RedHat Linux. We are experiencing what appears to be a memory leak without a commensurate increase in Java heap size. Basically the process size continues to grow until the max 32-process size is reached (4Gb) and eventually stops running (no core). Java heap is set to 2Gb min/max. GCs are nominal, so the leak appears to be native and outside Java bytecode.
    We need to determine whether there is a memory leak in BDB, or the IBM JVM or simply a mis-use of BDB in the Java code. What tools/instrumentation/db statistic should be used to help get to root cause? Do you recommend using System Tap (with some particular text command script)? What DB stats should we capture to get to the bottom of this memory leak? What troubleshooting steps can you recommend?
    Thanks ahead of time.
    JE.
    Edited by: 787930 on Aug 12, 2010 5:42 PM

    That's troublesome... DB itself doesn't have stats that track VM in any useful way. I am not familiar with SystemTap but a quick look at it seems to imply that it's better for kernel monitoring than user space. It's pretty hard to get DB to leak significant amounts of memory. The reason is that it mostly uses shared memory carved from the environment. Also if you are neglecting to close or delete some object DB generally complains about it somewhere.
    I don't see how pmap would help if it's a heap leak but maybe I'm missing something.
    One way to rule DB out is to replace its internal memory allocation functions with your own that are instrumented to track how much VM has been allocated (and freed). This is very easy to do using the interfaces:
    db_env_set_func_malloc()
    db_env_set_func_free()
    These are global to your process and your functions will be used where DB would otherwise call malloc() and free(). How you get usage information out of the system is an exercise left to the reader :-) If it turns out DB is the culprit then there is more thinking to do to isolate the problem.
    Other ideas that can provide information if not actual smoking guns:
    -- accelerate reproduction of the problem by allocating nearly all of the VM to the JVM and the DB cache (or otherwise limit the allowable VM in your process)
    -- change the VM allocated to the JVM in various ways
    Regards,
    George

  • Java JNI: use a c# dll?

    Hi there, I am working on a Windows XP machine. I work as part of a project, and so part of the needed code are written in different languages. As it happens, Java needs to use code written in c#.
    There are more than one question here, really.
    1) can I create an object defined in the dll in the Java code using JNI?
    2) If it absolutely needed to be could I create a GUI in Java, and can I send the window handle as argument into the dll? (when I talk about window handle I mean the thing that I would retrieve in c# on a textBox using textBox.Handle.toInt32())
    3) I heard there also exist sockets. Could you please specify the big difference between them and which one is better?
    Thanks a lot.
    Vic_code

    I believe that jshell was actuall referring to the COM interface.
    COM stands for Common Object Model and is a popular way in Windows for applications and components to communicate. It is nearly a synonym for ActiveX.
    It is easy to add a COM interface to a C# class. All you have to do is to add the COMVisible=true attrribute to the class.
    You can also use the project settings to expose the entire program to COM.
    Either way, you should check the box for "Register for COM Interop" under Build in project settings.
    Once your C# class has a COM interface, use jacob to access its properties and methods.
    Here is example code for accessing Visual Studio from a java app:
    import com.jacob.activeX.ActiveXComponent;
    import com.jacob.com.Variant;
    import com.jacob.com.Dispatch;
    public class VisualStudioApp
    private ActiveXComponent m_vsApp;
    public VisualStudioApp() throws VisualStudioException
    string vsVer = "VisualStudio.DTE";
    m_vsApp = ActiveXComponent.connectToActiveInstance(vsVer);
    if (null == m_vsApp)
    m_vsApp = ActiveXComponent.createNewInstance(vsVer);
    if (null != m_vsApp)
    if (!MainWindow().GetVisible())
    MainWindow().SetVisible(true);
    if (!GetUserControl())
    SetUserControl(true);
    // other methods and properties as needed...
    }You fill in other properties and methods as methods in the java class. For instance, the MainWindow property of the VisualStudioApp looks like:
    public MainWindow MainWindow()
    if (null == m_vsApp)
    return null;
    Variant win = m_vsApp.getProperty("MainWindow");
    return new MainWindow(win.getDispatch());
    }and the MainWindow class (corresponding to a MainWindow class probably written in C++ for Visual Studio but who cares) looks like:
    public class MainWindow
    protected Dispatch m_pDisp;
    public MainWindow(Dispatch pDisp) { m_pDisp = pDisp; }
    @Override protected void finalize() { m_pDisp.safeRelease(); m_pDisp = null; }
    public void SetFocus()
    Dispatch.call(m_pDisp, "SetFocus");
    // other properties and methods here...
    }Edited by: mozzis on May 21, 2009 11:10 AM
    Edited by: mozzis on May 21, 2009 11:14 AM

  • How to manipulate object mapping runtime using DOM parser in java?

    Scenario: We will be getting logical name of the table from which we have to fetch the details. We have few tables which have more or less same columns, the only difference is the prefix. Say we have Tables: Temp1 and Temp2 contains column as Temp1Col1 and Temp2Col1. I dont want to go with creating as many POJO classes in java as that of tables. So i will create only one POJO class with common attributes and at runtime i want to change the object mapping file of Hibernate to hold table values. I have an idea that this can be done using DOM parser. But it would be great if somebody can share the java code for the same.
    Thanks in advance.

    SAX is a parser, not a generator.Well,
    you can use it to create an XML file too. And it will take care of proper encoding, thus being much superior to a normal textwriter:
    See the following code snippet (out is a OutputStream):
    PrintWriter pw = new PrintWriter(out);
          StreamResult streamResult = new StreamResult(pw);
          SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();
          //      SAX2.0 ContentHandler.
          TransformerHandler hd = tf.newTransformerHandler();
          Transformer serializer = hd.getTransformer();
          serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");//
          serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"pdfBookmarks.xsd");
          serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"http://schema.inplus.de/pdf/1.0");
          serializer.setOutputProperty(OutputKeys.METHOD,"xml");
          serializer.setOutputProperty(OutputKeys.INDENT, "yes");
          hd.setResult(streamResult);
          hd.startDocument();
          //Get a processing instruction
          hd.processingInstruction("xml-stylesheet","type=\"text/xsl\" href=\"mystyle.xsl\"");
          AttributesImpl atts = new AttributesImpl();
          atts.addAttribute("", "", "someattribute", "CDATA", "test");
          atts.addAttribute("", "", "moreattributes", "CDATA", "test2");
           hd.startElement("", "", "MyTag", atts);
    String curTitle = "Something inside a tag";
              hd.characters(curTitle.toCharArray(), 0, curTitle.length());
        hd.endElement("", "", "MyTag");
          hd.endDocument();
    You are responsible for proper nesting. SAX takes care of encoding.
    Hth
    ;-) stw

  • How to map C/C++ unsigned char[] to Java

    hi all,
    I'm using w2k OS.
    Given that C code:
    BYTE *fBuf;
    fBuf = new BYTE[256];
    Is there anyone of you know how to pass/map the unsigned char to java?
    regards
    elvis

    why did you classify this as byte? how do you did
    that?They probably guessed. It is probably a good guess.
    You can use the following to determine the size exactly.
    First determine what "BYTE" is exactly. You will have to find that in an include file somewhere. Your IDE might do this for you automatically.
    So, for example you might find the following...
    typedef unsigned char BYTE;
    So then you would know that the type is actually "unsigned char".
    Once you have this information you then look in limits.h (this is an ANSI C/C++ file so it will exist somewhere.) In it you find the "..._BIT" that corresponds to the type. For the type given above you would be looking for "CHAR_BIT" (because unsigned and signed chars are the same size.)
    On my system that would be...
    #define CHAR_BIT 8
    That tells you that there are 8 bits in the BYTE value. So now you need to find a java type that also has at least 8 bits. And the java "byte" value does.

  • Map xsd complex type to existing java class without adding JAXB annotations

    Hello
    I've got a case where I should map an xsd complex type to an existing Java class without modifying that class, i.e. without adding JAXB annotations to that class.
    Is this possible somehow?
    As far as I've understood, the <javaType> declaration (adapter, parse/print methods) can only be used for xsd simple types.
    Thanks, Tom

    It should be possible to implement an XmlAdapter<...,...> which performs the required conversion between the original type and a JAXB-annotated type. Then, at the places where the original type is used, the @XmlJavaTypeAdapter annotation would be used.
    The xjc compiler supports this for xsd simple types (xjc:javaType annotation), but not for complex types.
    Any idea why this is restricted to simple types?
    Would it be possible to implement a xjc plugin which does this for complex types?
    Thanks Tom.

Maybe you are looking for