konto usunięte

Temat: GWT+Ibatis

Witam
Wiecie może jak podpiąć ibatis-a pod projekt w GWT, wiem ze to się robi przez GWT RPC.
Wszystko robię tak jak jest to opisane lecz i tak cos jest nie działa.
==============

STRONA KLIENCKA:
Person service:**

package com.gwt.ibatis.client;

import com.google.gwt.user.client.rpc.RemoteService;

public interface PersonService extends RemoteService{
Person[] select();
}


Asyn:

package com.gwt.ibatis.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface PersonServiceAsync {

void select(AsyncCallback callback);

}


loader:
package com.gwt.ibatis.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.ServiceDefTarget;

public class PersonServiceLoader {

public static PersonServiceAsync getPerson()
{
PersonServiceAsync calService = (PersonServiceAsync)GWT.create(PersonService.class);
ServiceDefTarget target = (ServiceDefTarget) calService;
String moduleRelativeURL = GWT.getModuleBaseURL() + "ibatis";
target.setServiceEntryPoint(moduleRelativeURL);
return calService;
}

}


=============
STRONA SERVERA
PersonServiceImpl:**
package com.gwt.ibatis.server;

import java.sql.SQLException;
import java.util.List;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.gwt.ibatis.client.Person;
import com.gwt.ibatis.client.PersonService;
import com.ibatis.sqlmap.client.SqlMapClient;

public class PersonServiceImpl extends RemoteServiceServlet implements PersonService {



public Person[] select() {
SqlMapClient client = IbatisManager.getSqlMapClient();

try {
List li = client.queryForList("kl.selectPerson");
return (Person[])li.toArray(new Person[li.size()]);
}
catch (SQLException e){
e.printStackTrace();
throw new RuntimeException(e.getMessage(), e);
}
}

}


Ibatis manager:

package com.gwt.ibatis.server;

import java.io.IOException;
import java.io.Reader;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class IbatisManager {

public static SqlMapClient getSqlMapClient() {
try {
Reader reader = Resources.getResourceAsReader("com/gwt/ibatis/server/sqlMapConfig.xml");
SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
return sqlMapper;
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage(), e);
}
}

}



ENTERY POINT:**
public void onModuleLoad() {

final Grid grid = new Grid(1,2);

grid.setText(0, 0, "id");
grid.setText(0, 1, "name");

PersonServiceAsync service = PersonServiceLoader.getPerson();
service.select(new AsyncCallback() {

@Override
public void onFailure(Throwable caught) {
Window.alert("Failure RPC call");

}

@Override
public void onSuccess(Object result) {

Person[] person = (Person[]) result;
for (int row = 0; row < person.length; ++row) {
grid.resizeRows(grid.getRowCount() + 1);
//grid.setText(row + 1, 0, person[row].getIdstatus());
grid.setText(row + 1, 1, person[row].getImie().toString());

}
}
});

RootPanel.get("slot1").add(grid);
}

i ibatis.gwt.xml


<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='ibatis'>
<inherits name='com.google.gwt.user.User'/>
<inherits name='com.google.gwt.user.theme.standard.Standard'/>
<entry-point class='com.gwt.ibatis.client.Ep'/>

<servlet path="/ibatis" class="com.gwt.ibatis.server.PersonServiceImpl"></servlet>
</module>

Bibilioteke ibatisa i oracle dodalem do War/WEB-INF/lib.
w package ....client jest klasa Person serialozowana
Maciej Nowicki

Maciej Nowicki Java Developer

Temat: GWT+Ibatis

ale co dokładnie nie działa? jaki masz błąd?

konto usunięte

Temat: GWT+Ibatis

[ERROR] javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.gwt.ibatis.client.Person[] com.gwt.ibatis.client.PersonService.select()' threw an unexpected exception: java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: java.security.AccessControlException: access denied (java.net.SocketPermission localhost resolve)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
at java.lang.SecurityManager.checkConnect(Unknown Source)
at java.net.InetAddress.getAllByName0(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getAllByName(Unknown Source)
at java.net.InetAddress.getByName(Unknown Source)
at java.net.InetSocketAddress.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at oracle.net.nt.TcpNTAdapter.connect(Unknown Source)
at oracle.net.nt.ConnOption.connect(Unknown Source)
at oracle.net.nt.ConnStrategy.execute(Unknown Source)
at oracle.net.resolver.AddrResolution.resolveAndExecute(Unknown Source)
at oracle.net.ns.NSProtocol.establishConnection(Unknown Source)
at oracle.net.ns.NSProtocol.connect(Unknown Source)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:844)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:268)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.java:580)
at com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.java:222)
at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48)
at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:122)
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:98)
at com.gwt.ibatis.server.PersonServiceImpl.select(PersonServiceImpl.java:19)
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 com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
... 30 more

Następna dyskusja:

GWT 1.5 RC1




Wyślij zaproszenie do