tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ritika Maheshwari <riti...@us.ibm.com>
Subject Re: java.lang.NullPointer exception when invoking XSDHelper.INSTANCE
Date Wed, 23 Aug 2006 16:42:36 GMT
Hi I tried to debug. I got the code from 
http://incubator.apache.org/tuscany/java_sdo_overview.html 


http://ftpna2.bea.com/pub/downloads/SDO_20_Source.zip

Is this the right place.Because when I imported these classes then i don't 
see the code u mentioned below in the HelperProvider.java.Secondly I had 
to make couple of methods public in HelperProvider.java (like copyHelper, 
dataHelper etc) to get the org.apache.tuscany.sdo.helper
.HelperProviderImpl to compile.I get Class not found exception in the 
following segment of code

 static HelperProvider INSTANCE = getHelperProviderImpl();
 
  static HelperProvider getHelperProviderImpl() 
  {
    try
    {
      return (HelperProvider)Class.forName(
"commonj.sdo.impl.HelperProviderImpl").newInstance();
    } catch (Exception e)
    {
      throw new RuntimeException(e);
    }
  }
ritika



"Yang ZHONG" <leiwang.yangzhong@gmail.com> 
08/23/2006 08:45 AM
Please respond to
tuscany-user@ws.apache.org


To
tuscany-user@ws.apache.org
cc

Subject
Re: java.lang.NullPointer exception when invoking XSDHelper.INSTANCE






Seems we have assured right ClassPath, are you also interested in 
debuging?

You can download sdo-api source code from Tuscany. HelperProvider.java 
line
65
            provider = getInstance(HelperProvider.class.getClassLoader());
is the place instantiating HelperProvider.

Same HelperProvider.java line 176
        InputStream is = cl.getResourceAsStream(SERVICE_RESOURCE_NAME);
is the place reading "META-INF/services/commonj.sdo.impl.HelperProvider"

sdo-impl ships one "META-INF/services/commonj.sdo.impl.HelperProvider" 
with
content of
    org.apache.tuscany.sdo.helper.HelperProviderImpl

On 8/23/06, Ritika Maheshwari <ritikam@us.ibm.com> wrote:
>
> Thanks for the input.I did insert the code in my main of test client and
> the output was
> file:/C:/WTP0629Host/TestCase/
> file:/C:/WTP0629Host/TuscanySDO2/bin/
> and TuscanySDO2/bin contains
> META-INF/services/commonj.sdo.impl.HelperProvider.I am not sure why it 
is
> not picking up
>
> ritika
>
>
>
> "Yang ZHONG" <leiwang.yangzhong@gmail.com>
> 08/21/2006 09:17 AM
> Please respond to
> tuscany-user@ws.apache.org
>
>
> To
> tuscany-user@ws.apache.org
> cc
>
> Subject
> Re: java.lang.NullPointer exception when invoking XSDHelper.INSTANCE
>
>
>
>
>
>
> Do you want to try the following code to verify the folders part of your
> ClassPath?
>
>        try
>        {
>          for
>          (
>            java.util.Enumeration folders =
> commonj.sdo.impl.HelperProvider.class.getClassLoader().getResources( 
"");
>            folders.hasMoreElements();
>          )
>            System.out.println( folders.nextElement());
>        }
>        catch(java.io.IOException eIO)
>        {}
>
>
> On 8/18/06, Ritika Maheshwari <ritikam@us.ibm.com> wrote:
> >
> > My TestProject depends on the TuscanySDO Project .Currently The Test
> > Project has a src/main/resources directory on class path(I manually
> > created this directory)And also as you have suggested the TuscanySDO
> > Project has TuscanySDO/impl/src/main/resources on its classpath.This
> > folder contains the META-INF and HelperProvider info.
> > So basically I have put HelperProvierImpl info at all possible
> places.But
> > it just does not seem to be getting picked up.
> >
> > ritika
> >
> >
> >
> > "Yang ZHONG" <leiwang.yangzhong@gmail.com>
> > 08/18/2006 01:44 PM
> > Please respond to
> > tuscany-user@ws.apache.org
> >
> >
> > To
> > tuscany-user@ws.apache.org
> > cc
> >
> > Subject
> > Re: java.lang.NullPointer exception when invoking XSDHelper.INSTANCE
> >
> >
> >
> >
> >
> >
> > sdo-impl project has a "main/resources" directory under "src" 
directory
> > already, you don't really have to create your own.
> > It may be easier to just configure that as part of your "source".
> >
> > On 8/18/06, Ritika Maheshwari <ritikam@us.ibm.com> wrote:
> > >
> > > I  created a package src.main.resources under my TestProject .Then
> under
> > > this package creates
> > META-INF/services/commonj.sdo.impl.HelperProvider.The
> > > source folder for Test Project included all the packages under this
> > > project.Therefore src.main.resources is also on the classpath.But
> still
> > I
> > > have NPE for
> > > XSDHelper.INSTANCE
> > >
> > > ritika
> > >
> > >
> > >
> > > "Yang ZHONG" <leiwang.yangzhong@gmail.com>
> > > 08/18/2006 12:29 PM
> > > Please respond to
> > > tuscany-user@ws.apache.org
> > >
> > >
> > > To
> > > tuscany-user@ws.apache.org
> > > cc
> > >
> > > Subject
> > > Re: java.lang.NullPointer exception when invoking XSDHelper.INSTANCE
> > >
> > >
> > >
> > >
> > >
> > >
> > > File in folder doesn't necessarily automatically make it into
> ClassPath,
> > > you
> > > can either mvn to generate Eclipse project file or manually 
configure
> > > src/main/resources
> > > as one of the project source directories
> > > project properties : Java build path : source (tab) : add folder
> > > (button)
> > > ...
> > >
> > >
> > > On 8/18/06, Ritika Maheshwari <ritikam@us.ibm.com> wrote:
> > > >
> > > > My Test project has a folder META-INF/services which contains text
> > file
> > > > commonj.sdo.impl.HelperProvider
> > > > Also my TuscanySDO project has a folder META-INF/services in
> > > > (src.main.resources) package.which contains the same text file.
> > > >
> > > > I believe the other way I could try is to set the HelperProvider 
as
> a
> > > > System property.Would you know how I could do this in Eclipse?
> > > >
> > > > ritika
> > > >
> > > >
> > > >
> > > > "Yang ZHONG" <leiwang.yangzhong@gmail.com>
> > > > 08/18/2006 11:55 AM
> > > > Please respond to
> > > > tuscany-user@ws.apache.org
> > > >
> > > >
> > > > To
> > > > tuscany-user@ws.apache.org
> > > > cc
> > > >
> > > > Subject
> > > > Re: java.lang.NullPointer exception when invoking 
XSDHelper.INSTANCE
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > I think it's fine to use sdo-impl project instead of the jar
> version,
> > as
> > > > long as
> > > > META-INF/services/commonj.sdo.impl.HelperProvider
> > > > is in the same ClassPath/ClassLoader as the sdo-api jar/project.
> > > >
> > > > Sometimes people forgets to include
> > > > src/main/resources
> > > > which has META-INF/services/commonj.sdo.impl.HelperProvider,
> > > > is that also your case?
> > > >
> > > > On 8/18/06, Ritika Maheshwari <ritikam@us.ibm.com> wrote:
> > > > >
> > > > > you are right I do have sdo-api-1.0-SNAPSHOT.jar in the build 
path
> > of
> > > my
> > > > > TestCase Java project (which contains my test client).This 
project
> > > > depends
> > > > > on TuscanySDO project which contains all the source code for SDO
> > > > 's.(which
> > > > > I extracted from SVN)Therefore I did not put the sdo-impl jar in
> > build
> > > > > path.By the way by sdo-impl jar did you mean
> > > > > tuscany-sdo-impl-1.0-SNAPSHOT.jar?
> > > > >
> > > > > ritika
> > > > >
> > > > >
> > > > >
> > > > > "Yang ZHONG" <leiwang.yangzhong@gmail.com>
> > > > > 08/18/2006 11:35 AM
> > > > > Please respond to
> > > > > tuscany-user@ws.apache.org
> > > > >
> > > > >
> > > > > To
> > > > > tuscany-user@ws.apache.org
> > > > > cc
> > > > >
> > > > > Subject
> > > > > Re: java.lang.NullPointer exception when invoking
> XSDHelper.INSTANCE
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Looks like you have sdo-api jar in ClassPath, what about 
sdo-impl
> > jar?
> > > > >
> > > > > On 8/18/06, Ritika Maheshwari <ritikam@us.ibm.com> wrote:
> > > > > >
> > > > > > Hi,
> > > > > >      here is my test client code
> > > > > >
> > > > > >    //Create a DataGraph
> > > > > >                        //SDOUtil.createTypeHelper();
> > > > > >                        DataObjectUtil.initRuntime();
> > > > > >                        URL url =
> > > thisClass.getResource("/newEMF.xsd");
> > > > > >                        InputStream inputStream =
> url.openStream();
> > > > > >                        //HelperProviderImpl helperProvider =

new
> > > > > > HelperProviderImpl();
> > > > > >                        XSDHelper.INSTANCE.define(inputStream,
> > > > > > url.toString());
> > > > > >                        inputStream.close();
> > > > > >                        DataGraphImpl datagraph =
> > > > (DataGraphImpl)SDOUtil.
> > > > > > createDataGraph();
> > > > > >                       datagraph.createRootObject(
> > > > > > "http://www.ibm.com/websphere/fvt/ejbquery/emf
> ","DataGraphRoot");
> > > > > >
> > > > > > XSDHelper.INSTANCE invocation gives the following stack trace
> > > > > > Caused by: java.lang.NullPointerException
> > > > > >        at commonj.sdo.impl.HelperProvider.getXSDHelper(
> > > > > > HelperProvider.java:343)
> > > > > >        at
> > commonj.sdo.helper.XSDHelper.<clinit>(XSDHelper.java:192)
> > > > > >        at java.lang.J9VMInternals.initializeImpl(Native 
Method)
> > > > > >        at
> > java.lang.J9VMInternals.initialize(J9VMInternals.java:148)
> > > > > >        ... 4 more
> > > > > > I tried to put the HelperProviderImpl class name  in the
> > > > > > META-INF/services/commonj.sdo.impl.HelperProviderImpl text 
file
> in
> > > the
> > > > > > src.main.resources package.But looks like it is not picking
up
> the
> > > > name
> > > > > > for the HelperProviderImpl.
> > > > > >
> > > > > > Here is the xsd file
> > > > > >
> > > > > > <schema
> > > > > > xmlns="http://www.w3.org/2001/XMLSchema"
> > > > > > targetNamespace="http://www.ibm.com/websphere/fvt/ejbquery/emf
"
> > > > > > xmlns:ritika="http://www.ibm.com/websphere/fvt/ejbquery/emf"
> > > > > > xmlns:sdo="commonj.sdo/XML"
> > > > > > xmlns:sdoJava="commonj.sdo/java"
> > > > > > sdoJava:package="com.ibm.websphere.fvt.ejbquery.emf">
> > > > > > <complexType name="DataGraphRoot">
> > > > > >    <sequence>
> > > > > >      <element maxOccurs="unbounded" minOccurs="0" 
name="deptMed"
> > > > > > type="ritika:DeptMed"/>
> > > > > >      <element maxOccurs="unbounded" minOccurs="0" 
name="empMed"
> > > > > > type="ritika:EmpMed"/>
> > > > > >      <element maxOccurs="unbounded" minOccurs="0"
> > name="projectMed"
> > > > > > type="ritika:ProjectMed"/>
> > > > > >      <element maxOccurs="unbounded" minOccurs="0" 
name="taskMed"
> > > > > > type="ritika:TaskMed"/>
> > > > > >      <!-- <element name="changeSummary"
> > type="sdo:ChangeSummaryType"
> > > > />
> > > > > > -->
> > > > > >    </sequence>
> > > > > > </complexType>
> > > > > > <complexType name="DeptMed">
> > > > > >   <sequence>
> > > > > >    <element name="deptno" type="int"/>
> > > > > >    <element name="name" type="string"/>
> > > > > >    <element name="budget" type="double"/>
> > > > > >    <element sdo:oppositeProperty="manages"
> > > > > > sdo:propertyType="ritika:EmpMed" name="mgr" 
type="ritika:EmpMed"
> > />
> > > > > >    <element sdo:oppositeProperty="dept"
> > > > > > sdo:propertyType="ritika:ProjectMed"  name="proj"
> > > > > type="ritika:ProjectMed"
> > > > > > />
> > > > > >    <element sdo:oppositeProperty="dept"
> > > > sdo:propertyType="ritika:EmpMed"
> > > > > > name="emp" type="ritika:EmpMed"  />
> > > > > >   </sequence>
> > > > > > </complexType>
> > > > > > <complexType name="EmpMed">
> > > > > >    <sequence>
> > > > > >    <element name="empid" type="int"/>
> > > > > >    <element name="name" type="string"/>
> > > > > >    <element name="salary" type="double"/>
> > > > > >    <element name="bonus" type="double"/>
> > > > > >    <element sdo:oppositeProperty="emp"
> > > > sdo:propertyType="ritika:DeptMed"
> > > > > > name="dept" type="ritika:DeptMed" />
> > > > > >    <element sdo:oppositeProperty="emp"
> > > > sdo:propertyType="ritika:TaskMed"
> > > > > > name="task" type="ritika:TaskMed" />
> > > > > >    <element sdo:oppositeProperty="mgr"
> > > > sdo:propertyType="ritika:DeptMed"
> > > > > > name="manages" type="ritika:DeptMed" />
> > > > > >    </sequence>
> > > > > > </complexType>
> > > > > > <complexType name="ProjectMed">
> > > > > >     <sequence>
> > > > > >    <element name="projid" type="int"/>
> > > > > >    <element name="cost" type="double"/>
> > > > > >    <element name="startDate" type="dateTime"
> > > > > > sdoJava:instanceClass="java.sql.Timestamp"/>
> > > > > >    <element name="endDate" type="dateTime"
> > > > > > sdoJava:instanceClass="java.sql.Timestamp"/>
> > > > > >    <element sdo:oppositeProperty="proj"
> > > > > sdo:propertyType="ritika:DeptMed"
> > > > > > name="dept" type="ritika:DeptMed" />
> > > > > >    <element sdo:oppositeProperty="proj"
> > > > > sdo:propertyType="ritika:TaskMed"
> > > > > > name="task" type="ritika:TaskMed" />
> > > > > >    </sequence>
> > > > > > </complexType>
> > > > > > <complexType name="TaskMed">
> > > > > >    <sequence>
> > > > > >    <element name="taskid" type="int"/>
> > > > > >    <element name="description" type="string"/>
> > > > > >    <element name="startDate" type="dateTime"
> > > > > > sdoJava:instanceClass="java.sql.Timestamp" />
> > > > > >    <element name="endDate" type="dateTime"
> > > > > > sdoJava:instanceClass="java.sql.Timestamp" />
> > > > > >    <element sdo:oppositeProperty="task"
> > > > > > sdo:propertyType="ritika:ProjectMed" name="proj"
> > > > > > type="ritika:ProjectMed"/>
> > > > > >    <element sdo:oppositeProperty="task"
> > > > sdo:propertyType="ritika:EmpMed"
> > > > > > name="emp" type="ritika:EmpMed" />
> > > > > >    </sequence>
> > > > > > </complexType>
> > > > > > </schema>
> > > > > >
> > > > > > ritika
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > > Yang ZHONG
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > >
> > > > Yang ZHONG
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > >
> > > Yang ZHONG
> > >
> > >
> > >
> >
> >
> > --
> >
> > Yang ZHONG
> >
> >
> >
>
>
> --
>
> Yang ZHONG
>
>
>


-- 

Yang ZHONG


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message