Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » scout » jdbc connection bundle SqlServer Jtds Drive (help: jdbc connection bundle SqlServer Jtds Drive)
jdbc connection bundle SqlServer Jtds Drive [message #952567] Sun, 21 October 2012 11:25 Go to previous message
Diogo Duarte is currently offline Diogo Duarte
Messages: 5
Registered: October 2012
Junior Member
Hi everyone:

I'm new to Scout and also to OSGI. I tried to folow the tutorial in the wiki: Write_a_jdbc_connection_bundle but using jTDS driver:

Created a plugin project with java src : org.eclipse.scout.rt.jdbc.jtds125 with a generated Activator

created a lib folder and placed the jTDS jar:jtds-1.2.5.jar

Created 2 packages:

org.eclipse.scout.rt.services.common.jdbc
org.eclipse.scout.rt.services.common.jdbc.style

placed the folowing classes respectivly:

package org.eclipse.scout.rt.services.common.jdbc;

import org.eclipse.scout.rt.server.services.common.jdbc.AbstractSqlService;
import org.eclipse.scout.rt.server.services.common.jdbc.style.ISqlStyle;
import org.eclipse.scout.rt.services.common.jdbc.style.JtdsSqlStyle;

public class AbstractJtdsSqlService  extends AbstractSqlService {
	  @Override
	  protected String getConfiguredJdbcDriverName() {
	    return "net.sourceforge.jtds.jdbc.Driver";
	  }
	 
	  @Override
	  protected String getConfiguredJdbcMappingName() {
	    return "jdbc:jtds:<server_type>://<server>[:<port>][/<database>]";
	  }
	  
	  @Override
	  protected Class<? extends ISqlStyle> getConfiguredSqlStyle() {
	    return JtdsSqlStyle.class;
	  }
}


and:

package org.eclipse.scout.rt.services.common.jdbc.style;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import org.eclipse.scout.rt.server.services.common.jdbc.style.AbstractSqlStyle;

public class JtdsSqlStyle extends AbstractSqlStyle {

	/**
	 * 
	 */
	private static final long serialVersionUID = -6139827987362401678L;

	@Override
	public String getConcatOp() {
		return "+";
	}

	@Override
	public String getLikeWildcard() {
		return "%";
	}

	@Override
	protected int getMaxListSize() {
		return 1000;
	}

	@Override
	public boolean isLargeString(String s) {
		return (s.length() > 4000);
	}

	@Override
	public boolean isBlobEnabled() {
		return true;
	}

	@Override
	public boolean isClobEnabled() {
		return true;
	}

	@Override
	public String createDateTimeIsNow(String attribute) {
		return "TRUNC(" + attribute + ", 'MI')=TRUNC(SYSDATE, 'MI')";
	}

	@Override
	public String createDateTimeIsNotNow(String attribute) {
		return "TRUNC(" + attribute + ", 'MI')!=TRUNC(SYSDATE, 'MI')";
	}

	@Override
	public void testConnection(Connection conn) throws SQLException {
		Statement testStatement = null;
		try {
			testStatement = conn.createStatement();
			testStatement.execute("SELECT count(1) FROM dbo.sysobjects");
		} finally {
			if (testStatement != null)
				try {
					testStatement.close();
				} catch (Throwable t) {
				}
		}
	}

}



then exported the 2 packages and added the jar to classpath.
The MANIFEST file is:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Jtds125
Bundle-SymbolicName: org.eclipse.scout.rt.jdbc.jtds125;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: Diogo Duarte
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: lib/jtds-1.2.5.jar
Require-Bundle: org.eclipse.scout.rt.server;bundle-version="3.7.0",
 org.eclipse.core.runtime;bundle-version="3.5.0"
Eclipse-RegisterBuddy: org.eclipse.scout.rt.server,pt.diogoduarte.wforce.server
Export-Package: net.sourceforge.jtds.jdbc,
 net.sourceforge.jtds.jdbc.cache,
 net.sourceforge.jtds.jdbcx,
 net.sourceforge.jtds.jdbcx.proxy,
 net.sourceforge.jtds.ssl,
 net.sourceforge.jtds.util,
 org.eclipse.scout.rt.services.common.jdbc,
 org.eclipse.scout.rt.services.common.jdbc.style
Bundle-Activator: org.eclipse.scout.jdbc.jtds125.Activator
Bundle-ActivationPolicy: lazy


Afterwards i opened the server package in my ScoutProject and added my plugin to the dependencies:


Require-Bundle: org.eclipse.core.runtime,
 pt.diogoduarte.wforce.shared,
 org.eclipse.scout.rt.server,
 org.eclipse.scout.http.servletfilter,
 org.eclipse.equinox.http.registry,
 org.eclipse.scout.rt.jdbc.jtds125


I created a

package pt.diogoduarte.wforce.server.services.common.sql;

import java.sql.Connection;

import org.eclipse.scout.commons.annotations.ConfigOperation;
import org.eclipse.scout.commons.annotations.Order;
import org.eclipse.scout.commons.exception.ProcessingException;
import org.eclipse.scout.rt.server.services.common.jdbc.style.ISqlStyle;
import org.eclipse.scout.rt.services.common.jdbc.AbstractJtdsSqlService;
import org.eclipse.scout.rt.services.common.jdbc.style.JtdsSqlStyle;
import org.eclipse.scout.service.IService2;

public class TesteSqlService extends AbstractJtdsSqlService implements IService2 {

  @Override
  protected String getConfiguredJdbcDriverName() {
    return "net.sourceforge.jtds.jdbc.Driver";
  }

  @Override
  protected String getConfiguredJdbcMappingName() {
    return "jdbc:jtds:sqlserver://sqlserver.scoprolumba.pt:1433/erpscopro";
  }

  @Override
  protected String getConfiguredPassword() {
    return "xxxx";
  }

  @Override
  protected Class<? extends ISqlStyle> getConfiguredSqlStyle() {
    return JtdsSqlStyle.class;
  }

  @Override
  protected String getConfiguredUsername() {
    return "sa";
  }

}


Then binded to a PageTable throw a StandardOutlineService

and a getContacts() method:

but when i run the server and client get the folowing message in the server log:


!ENTRY org.eclipse.scout.service 4 0 2012-10-21 16:23:39.045
!MESSAGE org.eclipse.scout.service.internal.ServicesExtensionManager.added(ServicesExtensionManager.java:195) register service: bundle=pt.diogoduarte.wforce.server, service=pt.diogoduarte.wforce.server.services.common.sql.TesteSqlService
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/scout/rt/services/common/jdbc/AbstractJtdsSqlService
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:632)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:607)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:568)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:340)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1212)
at org.eclipse.scout.service.internal.ServicesExtensionManager.added(ServicesExtensionManager.java:105)
at org.eclipse.scout.commons.runtime.ExtensionPointTracker.open(ExtensionPointTracker.java:112)
at org.eclipse.scout.service.internal.ServicesExtensionPointTracker.open(ServicesExtensionPointTracker.java:32)
at org.eclipse.scout.service.internal.ServicesExtensionManager.start(ServicesExtensionManager.java:82)
at org.eclipse.scout.service.internal.Activator$1$1.run(Activator.java:63)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.lang.ClassNotFoundException: org.eclipse.scout.rt.services.common.jdbc.AbstractJtdsSqlService
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 24 more

!ENTRY org.eclipse.scout.rt.shared 4 0 2012-10-21 16:23:39.453
!MESSAGE org.eclipse.scout.rt.shared.services.common.exceptionhandler.LogExceptionHandlerService.differentiatedLog(LogExceptionHandlerService.java:76) ProcessingStatus[ERROR code=0 invoking pt.diogoduarte.wforce.shared.services.outline.IStandardOutlineService:getContacts / service: class pt.diogoduarte.wforce.server.services.outline.StandardOutlineService, operation: getContacts, args: java.lang.NullPointerException]
!STACK 0
ProcessingException[ProcessingStatus[ERROR code=0 invoking pt.diogoduarte.wforce.shared.services.outline.IStandardOutlineService:getContacts / service: class pt.diogoduarte.wforce.server.services.outline.StandardOutlineService, operation: getContacts, args: java.lang.NullPointerException]]
at org.eclipse.scout.service.ServiceUtility.invoke(ServiceUtility.java:189)
at org.eclipse.scout.rt.server.DefaultTransactionDelegate.invokeImpl(DefaultTransactionDelegate.java:218)
at org.eclipse.scout.rt.server.DefaultTransactionDelegate.invoke(DefaultTransactionDelegate.java:92)
at org.eclipse.scout.rt.server.ServiceTunnelServlet.runServerJobTransactionWithDelegate(ServiceTunnelServlet.java:391)
at org.eclipse.scout.rt.server.ServiceTunnelServlet.runServerJobTransaction(ServiceTunnelServlet.java:387)
at org.eclipse.scout.rt.server.ServiceTunnelServlet$RemoteServiceJob.runTransaction(ServiceTunnelServlet.java:415)
at org.eclipse.scout.rt.server.ServerJob.runTransactionWrapper(ServerJob.java:202)
at org.eclipse.scout.rt.server.ServerJob.access$0(ServerJob.java:190)
at org.eclipse.scout.rt.server.ServerJob$1.run(ServerJob.java:161)
at org.eclipse.scout.rt.server.ServerJob$1.run(ServerJob.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.eclipse.scout.rt.server.ServerJob.run(ServerJob.java:156)
at org.eclipse.scout.commons.job.JobEx.runNow(JobEx.java:50)
at org.eclipse.scout.rt.server.ServerJob.runNow(ServerJob.java:148)
at org.eclipse.scout.rt.server.ServiceTunnelServlet.doPost(ServiceTunnelServlet.java:296)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.scout.http.servletfilter.HttpServletEx.access$0(HttpServletEx.java:1)
at org.eclipse.scout.http.servletfilter.HttpServletEx$1.service(HttpServletEx.java:38)
at org.eclipse.scout.http.servletfilter.internal.FilterChainImpl.doFilter(FilterChainImpl.java:44)
at org.eclipse.scout.http.servletfilter.helper.HttpAuthJaasFilter.doFilter(HttpAuthJaasFilter.java:62)
at org.eclipse.scout.http.servletfilter.internal.FilterChainImpl.doFilter(FilterChainImpl.java:41)
at org.eclipse.scout.http.servletfilter.helper.DevelopmentAuthFilter.doFilter(DevelopmentAuthFilter.java:61)
at org.eclipse.scout.http.servletfilter.internal.FilterChainImpl.doFilter(FilterChainImpl.java:41)
at org.eclipse.scout.http.servletfilter.security.AbstractChainableSecurityFilter.doFilterInternal(AbstractChainableSecurityFilter.java:220)
at org.eclipse.scout.http.servletfilter.security.AbstractChainableSecurityFilter.access$0(AbstractChainableSecurityFilter.java:219)
at org.eclipse.scout.http.servletfilter.security.AbstractChainableSecurityFilter$1.run(AbstractChainableSecurityFilter.java:157)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Unknown Source)
at org.eclipse.scout.http.servletfilter.security.AbstractChainableSecurityFilter.doFilter(AbstractChainableSecurityFilter.java:149)
at org.eclipse.scout.http.servletfilter.internal.FilterChainImpl.doFilter(FilterChainImpl.java:41)
at org.eclipse.scout.http.servletfilter.security.AbstractChainableSecurityFilter.doFilter(AbstractChainableSecurityFilter.java:103)
at org.eclipse.scout.http.servletfilter.internal.FilterChainImpl.doFilter(FilterChainImpl.java:41)
at org.eclipse.scout.http.servletfilter.ServletFilterDelegate.delegateServiceMethod(ServletFilterDelegate.java:57)
at org.eclipse.scout.http.servletfilter.HttpServletEx.service(HttpServletEx.java:35)
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:384)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
at org.eclipse.jetty.server.Server.handle(Server.java:350)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:900)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:954)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:851)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:606)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at org.eclipse.scout.rt.server.services.common.jdbc.SQL.select(SQL.java:101)
at pt.diogoduarte.wforce.server.services.outline.StandardOutlineService.getContacts(StandardOutlineService.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.scout.service.ServiceUtility.invoke(ServiceUtility.java:172)

Please help me i'm getting crazy with this error.
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic:Multiple databases
Next Topic:Scout SDK and Eclipse preferences
Goto Forum:
  


Current Time: Thu May 23 19:31:24 EDT 2013

Powered by FUDForum. Page generated in 0.01634 seconds