jdbc connection bundle SqlServer Jtds Drive [message #952567] |
Sun, 21 October 2012 15:25 |
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.
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04089 seconds