ERRORS [TRACE] [rpctest] - 查找入口点类:使用GWT使用Hibernate将数据插入MySql [英] ERRORS [TRACE] [rpctest] - Finding entry point classes: using GWT to insert data into MySql using Hibernate

查看:138
本文介绍了ERRORS [TRACE] [rpctest] - 查找入口点类:使用GWT使用Hibernate将数据插入MySql的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用GWT RPC& Hibernate使用eclipse环境从MySql插入和检索数据。我已经在服务接口中写入了两种方法来插入&从MySql中检索数据。



当我实现插入数据的方法时,程序运行正常,但是当我开始实现从MySql检索数据的方法时引发错误。



项目名称为 rpctest &

这里是项目结构:

  rpctest 
src
-hibernate.cfg.xml
-user.hbm.xml
-rpctest
- > Rpctest.gwt.xml
-rpctest.client
- > Rpctest.java
- > RpctestService.java
- > RpctestServiceAsync.java
-rpctest.server
- > HibernateUtil.java
- > RpctestServiceImpl.java
-rpctest.shared
- > FieldVerifier.java
- > User.java

以下是堆栈跟踪:

  [TRACE] [rpctest]  - 查找入口点类
[错误] [rpctest] - 无法找到类型'rpctest.client.Rpctest '
[错误] [rpctest] - 提示:以前的编译器错误可能导致此类型不可用
[错误] [rpctest] - 提示:检查模块的继承链;它可能不是继承所需的模块或模块可能没有正确添加其源路径条目
[错误] [rpctest] - 未能从用户代理'Mozilla / 5.0(兼容; MSIE 9.0)加载模块'rpctest' ; Windows NT 6.1; Trident / 5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)'at 127.0.0.1:51539 b $ b

Rpctest.gwt.xml

 <?xml version =1.0encoding =UTF-8?> 
< module rename-to ='rpctest'>
<! - 继承核心Web Toolkit的东西。 - >
<继承了name ='com.google.gwt.user.User'/>

<! - 继承默认的GWT样式表。您可以更改 - >
<! - 通过取消注释,您的GWT应用程序的主题 - >
<! - - 以下任何一行。 - >
<继承了name ='com.google.gwt.user.theme.clean.Clean'/>
<! - < inherits name ='com.google.gwt.user.theme.standard.Standard'/> - >
<! - < inherits name ='com.google.gwt.user.theme.chrome.Chrome'/> - >
<! - < inherits name ='com.google.gwt.user.theme.dark.Dark'/> - >

<! - 其他模块继承 - >

<! - 其他模块继承 - >

<! - 指定应用程序入口点类。 - >
< entry-point class ='rpctest.client.Rpctest'/>

<! - 指定可翻译代码的路径 - >

< source path ='client'/>
< source path ='shared'/>

< / module>

服务界面

  package rpctest.client; 

import java.util.ArrayList;

导入rpctest.shared.User;

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

@RemoteServiceRelativePath(testService)
public interface RpctestService extends RemoteService {

public String addUser(String firstName,String lastName)throws IllegalArgumentException;
public User [] getUser();
}
-------

package rpctest.client;

import java.util.ArrayList;

导入rpctest.shared.User;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface RpctestServiceAsync {

void addUser(String firstName,String lastName,
AsyncCallback< String> callback);

void getUser(AsyncCallback< User []> asyncCallback);
}

Rpctest.java

  package rpctest.client; 

import java.util.ArrayList;

导入rpctest.shared.User;
导入rpctest.shared.FieldVerifier;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlexTable;
导入com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Horizo​​ntalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;

/ **
*入口点类定义< code> onModuleLoad()< / code> ;.
* /
public class Rpctest implements EntryPoint {

final TextBox firstName = new TextBox();
final TextBox lastName = new TextBox();
final Button ans =新建按钮(添加用户);
//最终标签label1 =新标签(First Name);
//最终标签label2 =新标签(Last Name);
private FlexTable userFlexTable = new FlexTable();
//最终标签errorLabel = new Label();

private VerticalPanel mainpanel = new VerticalPanel();
private Horizo​​ntalPanel addpanel1 = new Horizo​​ntalPanel();
private Horizo​​ntalPanel addpanel2 = new Horizo​​ntalPanel();
private final RpctestServiceAsync calNumbers = GWT
.create(RpctestService.class);

/ **
*这是入口点方法。
* /
public void onModuleLoad(){

userFlexTable.setText(0,0,User ID);
userFlexTable.setText(0,1,First Name);
userFlexTable.setText(0,2,Second Name);
userFlexTable.setText(0,3,Remove);

//将输入框添加到面板
addpanel1.add(firstName);
addpanel1.add(lastName);

firstName.setFocus(true);

//添加输入
mainpanel.add(userFlexTable);
mainpanel.add(addpanel1);
addpanel1.add(ans);

ans.addClickHandler(new ClickHandler(){
@Override
public void onClick(ClickEvent event){
addStock();
}
});
$ b $ lastName.addKeyPressHandler(new KeyPressHandler(){
public void onKeyPress(KeyPressEvent event){$ b $ if(event.getCharCode()== KeyCodes.KEY_ENTER){
addStock();
}
}
});

RootPanel.get()。add(mainpanel);
}

private void addStock(){

String name1 = firstName.getValue();
//股票代码必须介于数字,字母或点的1到10个字符之间。
/ * if(!name1.matches(^ [0-9A-Z\\。] {1,10} $)){
Window.alert('+ name1 +'不是有效的名称。);
firstName.selectAll();
return;
} * /
firstName.setValue();

String name2 = lastName.getValue();
/ * if(!name2.matches(^ [0-9A-Z\\。] {1,10} $)){
Window.alert('+ name1 +'不是有效的名称。);
lastName.selectAll();
return;
} * /
lastName.setValue();
firstName.setFocus(true);

calNumbers.addUser(name1,name2,
new AsyncCallback< String>(){
public void onFailure(Throwable caught){
//显示RPC错误给用户的消息
Window.alert(检查你的输入);
}

@Override
public void onSuccess(String result){
// TODO自动生成方法存根
//将用户添加到表中
int row = userFlexTable.getRowCount();
userFlexTable.setText(row,1,result);
}
});

$ b $ private void getUser(){

calNumbers.getUser(new AsyncCallback< User []>(){
public void onFailure Throwable caught){
//向用户显示RPC错误信息
Window.alert(数据库连接问题);
}

@Override
public void onSuccess(User [] result){
// TODO自动生成的方法存根
Window.alert(im in getUser!);


}
});


$ b $ / code $ / pre
$ b

RpctestServiceImpl.java

  package rpctest.server; 

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
// import com.hib.HibernateUtil;

import org.hibernate.Session;
import org.hibernate.Transaction;
导入rpctest.shared.User;
导入rpctest.client.RpctestService;

public class RpctestServiceImpl extends RemoteServiceServlet implements RpctestService {

public String addUser(String name1,String name2)
throws IllegalArgumentException {

Transaction trns = null;
Session session = HibernateUtil.getSessionFactory()。openSession();
尝试{
trns = session.beginTransaction();

User user = new User();

user.setFirstName(name1);
user.setLastName(name2);

session.save(user);

session.getTransaction()。commit();
} catch(RuntimeException e){
if(trns!= null){
trns.rollback();
}
e.printStackTrace();
}最后{
session.flush();
session.close();
}

返回name1 + name2; //测试可伸缩的只有
}

@Override
public User [] getUser()
{

List< User> getUser = null;

交易trns = null;
Session session = HibernateUtil.getSessionFactory()。openSession();
尝试{
trns = session.beginTransaction();
getUser = session.createQuery(from User)。list();

// * for(Iterator< User> iter = getUser.iterator(); iter.hasNext();)
// {
// User user = iter。下一个();
//
// *}

trns.commit();
} catch(RuntimeException e){
if(trns!= null){
trns.rollback();
}
e.printStackTrace();
}最后{
session.flush();
session.close();
}
return getUser.toArray(new User [getUser.size()]);
}
}


解决方案

元素看起来很腥,如果尝试使用以下代码会发生什么:< source path ='rpctest / client'/> < source path =' hibDomain'/>



< source path ='server'/> 肯定是错误的,你不希望你的服务器端代码gwt编译。


I am using GWT RPC & Hibernate to insert and retrieve data from MySql using eclipse environment. I have written two methods in service interfaces to insert & retrieve data from MySql.

The program is running fine when I implemented method to insert data but is raising errors when I started implementing method to retrieve data from MySql.

Name of project is rpctest & same is name of package.

Here structure of project:

rpctest
src
-hibernate.cfg.xml
-user.hbm.xml
-rpctest
   -> Rpctest.gwt.xml
-rpctest.client
   -> Rpctest.java
   -> RpctestService.java
   -> RpctestServiceAsync.java
-rpctest.server
   -> HibernateUtil.java
   -> RpctestServiceImpl.java
-rpctest.shared
   -> FieldVerifier.java
   -> User.java

Here is stack trace:

   [TRACE] [rpctest] - Finding entry point classes
    [ERROR] [rpctest] - Unable to find type 'rpctest.client.Rpctest'
        [ERROR] [rpctest] - Hint: Previous compiler errors may have made this type unavailable
        [ERROR] [rpctest] - Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
[ERROR] [rpctest] - Failed to load module 'rpctest' from user agent 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)' at 127.0.0.1:51539

Rpctest.gwt.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <module rename-to='rpctest'>
      <!-- Inherit the core Web Toolkit stuff.                        -->
      <inherits name='com.google.gwt.user.User'/>

      <!-- Inherit the default GWT style sheet.  You can change       -->
      <!-- the theme of your GWT application by uncommenting          -->
      <!-- any one of the following lines.                            -->
      <inherits name='com.google.gwt.user.theme.clean.Clean'/>
      <!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
      <!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
      <!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/>     -->

      <!-- Other module inherits                                      -->

   <!-- Other module inherits                                      -->

  <!-- Specify the app entry point class.                         -->
  <entry-point class='rpctest.client.Rpctest'/>

  <!-- Specify the paths for translatable code                    -->

  <source path='client'/>  
  <source path='shared'/>

 </module>

Service interfaces

package rpctest.client;

import java.util.ArrayList;

import rpctest.shared.User;

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

@RemoteServiceRelativePath("testService")
public interface RpctestService extends RemoteService {

    public String addUser(String firstName,String lastName) throws IllegalArgumentException;
    public  User[] getUser();
}
-------

package rpctest.client;

import java.util.ArrayList;

import rpctest.shared.User;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface RpctestServiceAsync {

    void addUser(String firstName, String lastName,
            AsyncCallback<String> callback);

    void getUser(AsyncCallback<User[]> asyncCallback);
}

Rpctest.java

package rpctest.client;

import java.util.ArrayList;

import rpctest.shared.User;
import rpctest.shared.FieldVerifier;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Rpctest implements EntryPoint {

    final TextBox firstName = new TextBox();
    final TextBox lastName = new TextBox();
    final Button ans = new Button("Add User");
    //final Label label1 = new Label("First Name");
    //final Label label2 = new Label("Last Name");
    private FlexTable userFlexTable = new FlexTable();
    //final Label errorLabel = new Label();

    private VerticalPanel mainpanel = new VerticalPanel();
    private HorizontalPanel addpanel1 = new HorizontalPanel();
    private HorizontalPanel addpanel2 = new HorizontalPanel();
    private final RpctestServiceAsync calNumbers = GWT
            .create(RpctestService.class);

    /**
     * This is the entry point method.
     */
    public void onModuleLoad() {

        userFlexTable.setText(0, 0, "User ID");
        userFlexTable.setText(0, 1, "First Name");
        userFlexTable.setText(0, 2, "Second Name");
        userFlexTable.setText(0, 3, "Remove");

        //add input boxes to panel
        addpanel1.add(firstName);
        addpanel1.add(lastName);

        firstName.setFocus(true);

        //add input 
        mainpanel.add(userFlexTable);
        mainpanel.add(addpanel1);
        addpanel1.add(ans);

        ans.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                        addStock();                 
            }
        });

        lastName.addKeyPressHandler(new KeyPressHandler() {
              public void onKeyPress(KeyPressEvent event) {
                  if (event.getCharCode() == KeyCodes.KEY_ENTER) {
                      addStock();
                  }
                }
              });

        RootPanel.get().add(mainpanel);
    }

private void addStock(){

        String name1 = firstName.getValue();
        // Stock code must be between 1 and 10 chars that are numbers, letters, or dots.
        /*if (!name1.matches("^[0-9A-Z\\.]{1,10}$")) {
          Window.alert("'" + name1 + "' is not a valid name.");
          firstName.selectAll();
          return;
        }*/
         firstName.setValue("");

        String name2 = lastName.getValue();
        /*if (!name2.matches("^[0-9A-Z\\.]{1,10}$")) {
              Window.alert("'" + name1 + "' is not a valid name.");
              lastName.selectAll();
              return;
            }*/
        lastName.setValue("");
        firstName.setFocus(true);

        calNumbers.addUser(name1,name2,
            new AsyncCallback<String>() {
            public void onFailure(Throwable caught) {
                // Show the RPC error message to the user
                    Window.alert("check your inputs");
                }

            @Override
            public void onSuccess(String result) {
            // TODO Auto-generated method stub
                // Add the user to the table.
                int row = userFlexTable.getRowCount();
                userFlexTable.setText(row, 1, result);
            }
        });
    }

private void getUser(){

       calNumbers.getUser(new AsyncCallback<User[]>() {
            public void onFailure(Throwable caught) {
                // Show the RPC error message to the user
                    Window.alert("Problem in database connection");
                }

            @Override
            public void onSuccess(User[] result) {
                // TODO Auto-generated method stub
                Window.alert("i m in getUser!");


            }
        });

      }
}

RpctestServiceImpl.java

package rpctest.server;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
//import com.hib.HibernateUtil;

import org.hibernate.Session;
import org.hibernate.Transaction;
import rpctest.shared.User;
import rpctest.client.RpctestService;

public class RpctestServiceImpl extends RemoteServiceServlet  implements RpctestService {

        public String addUser(String name1, String name2)
            throws IllegalArgumentException {

              Transaction trns = null;
              Session session = HibernateUtil.getSessionFactory().openSession();
              try {
               trns = session.beginTransaction();

               User user = new User();

               user.setFirstName(name1);
               user.setLastName(name2);

               session.save(user);

               session.getTransaction().commit();
              } catch (RuntimeException e) {
               if(trns != null){
                trns.rollback();
               }
               e.printStackTrace();
              } finally{
               session.flush();
               session.close();
              }

        return name1+name2; // to test flextable entris only 
    }

    @Override
    public  User[] getUser()
             {

              List<User> getUser = null;

              Transaction trns = null;
              Session session = HibernateUtil.getSessionFactory().openSession();
              try {
               trns = session.beginTransaction();
               getUser = session.createQuery("from User").list();

               //* for (Iterator<User> iter = getUser.iterator(); iter.hasNext();) 
              //{
                //User user = iter.next();
                //
              //*}             

               trns.commit();
              } catch (RuntimeException e) {
               if(trns != null){
                trns.rollback();
               }
               e.printStackTrace();
              } finally{
               session.flush();
               session.close();
             }
              return getUser.toArray(new User[getUser.size()]);
        }
}

解决方案

source element looks fishy, what happens if you try with: <source path='rpctest/client'/> and <source path='hibDomain'/> ?

<source path='server'/> is definitely wrong, you don't want your server-side code gwt compiled.

这篇关于ERRORS [TRACE] [rpctest] - 查找入口点类:使用GWT使用Hibernate将数据插入MySql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆