ok, now i m sure where is the problem, It happens when this line happens // Call the static initializer for Xerces. /* XMLPlatformUtils::Initialize();
and launch this exception: Exception UnsatisfiedLinkError al inicializar el servlet Controlador: /home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/LibXalanC_Engine.so: /home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/LibXalanC_Engine.so: undefined symbol: _ZN11xercesc_2_76XMLUni22fgXercescDefaultLocaleE its the firts exception that its launched! im using xerces-c++ 2.7.0 and xalan-c 1.10 on ubuntu 2.6.20 with jdk 1.6.04 pls help!! logancillo wrote: > > hi everybody, > > can anybody explain me what is the significant of this error?: > > Exception UnsatisfiedLinkError al inicializar el servlet Controlador: > /home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/libXalanC_Engine.so: > /home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/libXalanC_Engine.so: > > undefined symbol: _ZN11xalanc_1_1014XalanDOMString7s_emptyE > > it happens when i try to load the .so and google doesnt know anything. > > the java class with native method: > > package es.yell.frontlite.mvc.View; > > //import java.io.ByteArrayOutputStream; > > /** > * > * @author alonso > */ > public class RenderizarVistaXalanC { > > > //public native ByteArrayOutputStream renderView(String xml, > javax.xml.transform.Transformer transletXSL); > public native void renderView(String xml, String xsl); > } > > the header file generated via javah > > /* DO NOT EDIT THIS FILE - it is machine generated */ > #include <jni.h> > /* Header for class es_yell_frontlite_mvc_View_RenderizarVistaXalanC */ > > #ifndef _Included_es_yell_frontlite_mvc_View_RenderizarVistaXalanC > #define _Included_es_yell_frontlite_mvc_View_RenderizarVistaXalanC > #ifdef __cplusplus > extern "C" { > #endif > /* > * Class: es_yell_frontlite_mvc_View_RenderizarVistaXalanC > * Method: renderView > * Signature: (Ljava/lang/String;Ljava/lang/String;)V > */ > JNIEXPORT void JNICALL > Java_es_yell_frontlite_mvc_View_RenderizarVistaXalanC_renderView > (JNIEnv *env, jobject obj, jstring xml, jstring xsl); > > #ifdef __cplusplus > } > #endif > #endif > > the implementation c file: > > #include "../../es_yell_frontlite_mvc_View_RenderizarVistaXalanC.h" > #include <xalanc/Include/PlatformDefinitions.hpp> > #if defined(XALAN_CLASSIC_IOSTREAMS) > #include <iostream.h> > #include <strstream.h> > #include <fstream.h> > #else > #include <iostream> > #include <strstream> > #include <fstream> > #endif > #include <xercesc/util/PlatformUtils.hpp> > #include <xalanc/XalanTransformer/XalanTransformer.hpp> > > > JNIEXPORT void JNICALL > Java_es_yell_frontlite_mvc_View_RenderizarVistaXalanC_renderView > (JNIEnv *env, jobject obj, jstring xml, jstring xsl) { > > jboolean blnIsCopy; > > XALAN_USING_STD(cerr) > XALAN_USING_STD(cout) > XALAN_USING_STD(endl) > XALAN_USING_STD(istrstream) > XALAN_USING_STD(ofstream) > XALAN_USING_STD(ostrstream) > > #if defined(XALAN_STRICT_ANSI_HEADERS) > using std::strlen; > #endif > > XALAN_USING_XERCES(XMLPlatformUtils) > > XALAN_USING_XALAN(XalanTransformer) > > // Call the static initializer for Xerces. > XMLPlatformUtils::Initialize(); > > // Initialize Xalan. > XalanTransformer::initialize(); > > // Create a XalanTransformer. > XalanTransformer theXalanTransformer; > > const char* const theInputXmlDocument > =env->GetStringUTFChars(xml,&blnIsCopy); > > printf("xml: %s\n",theInputXmlDocument); > > const char* const theInputXslDocument = > env->GetStringUTFChars(xsl,&blnIsCopy); > > printf("xml: %s\n",theInputXslDocument); > > // Our input streams... > istrstream theXMLStream(theInputXmlDocument, > strlen(theInputXmlDocument)); > istrstream theXSLStream(theInputXslDocument, > strlen(theInputXslDocument)); > > XALAN_USING_XALAN(XalanDOMString) > XALAN_USING_XALAN(XSLTInputSource) > > XSLTInputSource inputSource(&theXSLStream); > > inputSource.setSystemId(XalanDOMString("foo").c_str()); > > // Do the transform. > int theResult = theXalanTransformer.transform(&theXMLStream, > inputSource, cout); > > if(theResult != 0) > { > cerr << "StreamTransform Error: \n" << > theXalanTransformer.getLastError() > << endl > << endl; > } > > // Terminate Xalan... > XalanTransformer::terminate(); > > // Terminate Xerces... > XMLPlatformUtils::Terminate(); > > // Clean up the ICU, if it's integrated... > XalanTransformer::ICUCleanUp(); > } > > i already tried to load the .so setting LD_LIBRARY_PATH like this: > > [EMAIL PROTECTED]:~$ export > LD_LIBRARY_PATH=/home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/ > [EMAIL PROTECTED]:~$ echo $LD_LIBRARY_PATH > /home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/ > > where /home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/ is a > directory which contains the .so > > [EMAIL PROTECTED]:~$ cd $LD_LIBRARY_PATH > [EMAIL PROTECTED]:~/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86$ ls > libXalanC_Engine.so > > this is how i try to load the .so file giving me UnsatisfiedLinkError > System.load("/home/alonso/curro/XalanC_Engine/dist/Debug/GNU-Linux-x86/libXalanC_Engine.so"); > > if i try to load the .so like this: > Exception UnsatisfiedLinkError al inicializar el servlet Controlador: > Expecting an absolute path of the library: libXalanC_Engine > this is the output when i did System.out.println("java.library.path:" + > System.getProperty("java.library.path")); > > java.library.path:/usr/java/jdk1.6.0_04/jre/lib/i386/client:/usr/java/jdk1.6.0_04/jre/lib/i386:/usr/java/jdk1.6.0_04/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib > > > i think this is the problem but i m not sure, pls help me! > > > Alonso > -- View this message in context: http://www.nabble.com/problems-loading-library-tp15203564p15206571.html Sent from the Xalan - C - Users mailing list archive at Nabble.com.