中间那个注释说写到ejb-finders-OrdersBean.xml,我写了根本没用,部署后还是说找不到方法findByUserId.ejb-finders-OrdersBean.xml:
<?xml version="1.0" encoding="UTF-8"?>
<query>
<query-method>
<method-name>findByUserId</method-name>
<method-params>java.lang.Integer</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM mySchema2 as a where a.userid=?1]]></ejb-ql>
</query>
<p>
|
以上问题我在jboss console中只是看到个warning,看起来部署好像还是成功的,只不过该findByUserId方法有问题.但我在jsp页面调用另一个方法getUsers,页面一直在load,很长时间都load不出来结果?jboss console也没抛出错误,真奇怪.
index.jsp:
<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<%@page import="com.webex.testj2ee.*,java.util.*,javax.naming.*"
%>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<table width=60% border=1>
<%
try{
Hashtable props = new Hashtable();
props.put(InitialContext.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
props.put(InitialContext.PROVIDER_URL, "jnp://127.0.0.1:1099");
InitialContext initialContext = new InitialContext(props);
UserManagerHome umhome=(UserManagerHome)initialContext.lookup(UserManagerHome.JNDI_NAME);
UsersData[] ud=umhome.create().getUsers();
for(int i=0;i<ud.length;i++){
%>
<tr>
<td><%=(ud[i].getUserid().toString())%></td>
<td><%=(ud[i].getName())%></td>
<td><%=(ud[i].getPass())%></td>
</tr>
<%}
}
catch(NamingException ex){
ex.printStackTrace();
}
%>
</table>
</body>
</html>
<p>
|
getUsers方法:
public UsersData[] getUsers(){
try{
ArrayList userList = new ArrayList(50);
Collection c=UsersUtil.getHome().findAll();
Iterator it = c.iterator();
while(it.hasNext()){
Users u=(Users)it.next();
UsersData ud=new UsersData(u.getUserid(),u.getName(),u.getPass());
userList.add(ud);
}
return (UsersData[])userList.toArray(new UsersData[userList.size()]);
}
catch(FinderException e){
e.printStackTrace();
}
catch(RemoteException ex){
ex.printStackTrace();
}
catch(NamingException ex){
}
return null;
}
<p>
|