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.