1

先生,在我的 SmartGwt 应用程序中,我正在更新我的服务器配置。但是在这里我在属性更改后使用 DynamicDSGenerator 以便新用户可以连接新配置。我创建设置我的自定义 DynamicDSGenerator 的 servlet 此类中的代码 thows 空点异常这里是代码

class CustomDSGenerator implements com.isomorphic.datasource.DynamicDSGenerator { 
public CustomDSGenerator() {
   super();
}

@Override
public DataSource getDataSource(String id, DSRequest dsRequest) {
   DataSource ds = null;
   try {
     if (dsRequest != null) {
       DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
       DocumentBuilder builder = factory.newDocumentBuilder();
       InputStream input = dsRequest.getServletContext().getResourceAsStream( "/ds/" +             dsRequest.getDataSourceName() + ".ds.xml");
       Document doc = builder.parse(input);
      //>>>>> here doc is null
      doc.getDocumentElement().setAttribute("dbName",thi s.dbName);
      //>>>>> thows error after this
      ds = DataSource.fromXML(doc);
    }
  } catch (Exception ex) {
     ex.printStackTrace();
}
  return ds;
}

}

错误:

 java.sql.SQLException: javax.naming.NoInitialContextException: Need to specify class  name in environment or system property, or as an applet parameter, or in an application   resource file: java.naming.factory.initial
at com.isomorphic.sql.SQLConnectionManager.getConnect ion(SQLConnectionManager.java:174)
at com.isomorphic.sql.SQLDriver.implementerClassForDB (SQLDriver.java:471)
at com.isomorphic.sql.SQLDriver.instance(SQLDriver.ja va:432)
at com.isomorphic.sql.SQLDataSource.init(SQLDataSourc e.java:186)
at com.isomorphic.datasource.DataSource.initialize(Da taSource.java:400)
at com.isomorphic.datasource.BasicDataSource.fromConf ig(BasicDataSource.java:163)
at com.isomorphic.datasource.DataSource.fromConfig(Da taSource.java:385)
at com.isomorphic.datasource.DataSource.fromXML(DataS ource.java:450)
at com.isomorphic.datasource.DataSource.fromXML(DataS ource.java:482)
at com.streetsmart1.dbsetup.CustomDSGenerator.getData Source(CustomDSGenerator.java:64)
at com.isomorphic.datasource.DataSource.getDynamicDat aSource(DataSource.java:364)
at com.isomorphic.datasource.DataSource.forName(DataS ource.java:202)
at com.isomorphic.datasource.DataSource.forName(DataS ource.java:195)
at com.isomorphic.datasource.DataSource.forName(DataS ource.java:184)
at com.isomorphic.datasource.PoolableDataSourceFactor     y.makeUnpooledObject(PoolableDataSourceFactory.jav a:119)
at com.isomorphic.datasource.PoolableDataSourceFactor  y.makeObject(PoolableDataSourceFactory.java:127)
at com.isomorphic.pool.PoolManager.borrowObject(PoolM anager.java:94)
at com.isomorphic.datasource.DataSourceManager.getDat aSource(DataSourceManager.java:89)
at com.isomorphic.datasource.DataSourceManager.getDat   aSource(DataSourceManager.java:83)
at com.isomorphic.servlet.DataSourceLoader.processReq uest(DataSourceLoader.java:126)
at com.isomorphic.servlet.DataSourceLoader.doGet(Data SourceLoader.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
at com.isomorphic.servlet.BaseServlet.service(BaseSer vlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(Ser vletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1097)
at com.isomorphic.servlet.CompressionFilter.doFilter( CompressionFilter.java:259)
at org.mortbay.jetty.servlet.ServletHandler$CachedCha in.doFilter(ServletHandler.java:1088)
at org.mortbay.jetty.servlet.ServletHandler.handle(Se rvletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle( SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(Se ssionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(Co ntextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebA ppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle (RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(Ha ndlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(Htt pConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.he aderComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser. java:513)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpPa rser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnec tion.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(Selec tChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run (QueuedThreadPool.java:488)
4

0 回答 0