Volgende probleem:
"Ik heb een tabel UserEJB met daarin de velden: UserId, UserName, Password, MobileNumber. UserId is hierbij ingesteld als autonummering en PrimaryKey. In de code is de userId een Integer. In mijn EntityBean heb ik de volgende create method:
Deze wordt aangeroepen door de method in mijn Session Bean, namelijk:
Vervolgens heb ik hiervoor een jsp pagina geschreven met ook hier een functie om de zooi op te slaan... deze spreekt dan weer de SessionBean aan:
Dit werkt alleen niet omdat hij volgens mij niet snapt wat hij met UserId aanmoet en deze neemt ook niet mee... ik krijg namelijk de volgende stacktrace:
Hierin is dus ook geen UserID meegenomen. Maar als ik voor de UserID een harde waarde ingeef krijg ik natuurlijk een database error omdat hij daar op autonummering staat. Weet iemand hoe dit op te lossen is?
"Ik heb een tabel UserEJB met daarin de velden: UserId, UserName, Password, MobileNumber. UserId is hierbij ingesteld als autonummering en PrimaryKey. In de code is de userId een Integer. In mijn EntityBean heb ik de volgende create method:
code:
1
2
3
4
5
6
7
8
9
10
| public java.lang.Integer ejbCreate(Integer userId, String userName,
String password, String mobileNumber)
throws javax.ejb.CreateException
{
setUserId(userId);
setUserName(userName);
setPassword(password);
setMobileNumber(mobileNumber);
return null;
} |
Deze wordt aangeroepen door de method in mijn Session Bean, namelijk:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| public void createUser(Integer userId, String userName, String password, String mobileNumber)
// Dit is de functie die 4 argumenten (userid, username, password, mobilenumber)
// doorgeeft aan de EntityBean om een nieuwe gebruiker in de database op te slaan.
{
try
{
UserLocal user = local.create(userId, userName, password, mobileNumber);
}
catch (Exception ex)
{
throw new EJBException(ex);
}
} |
Vervolgens heb ik hiervoor een jsp pagina geschreven met ook hier een functie om de zooi op te slaan... deze spreekt dan weer de SessionBean aan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| <%
String step = request.getParameter("step");
if (step != null && step.equals("A"))
{
Integer userId = new Integer(" ");
String userName = request.getParameter("UserName");
String password = request.getParameter("Password");
String mobileNumber = request.getParameter("MobileNumber");
if (userName != null && userName.length() > 0)
{
storingsmelder.createUser(userId, userName, password, mobileNumber);
out.println("<B>Let op</B> gebruiker: "+userName+" is opgeslagen<hr>");
}
}
%>
<script Language="JavaScript">
<!-- Hide
function doeAdd(theForm) {
document.Add.step.value="A";
document.Add.submit();
}
//--></script>
<center><form name="Add" method="get">
<TABLE BORDER=1 BGCOLOR=#FFFFFF>
<INPUT TYPE="hidden" name="step" value=" "><BR>
<TR>
<TD COLSPAN=2><STRONG>Aanmaken nieuwe gebruiker: </STRONG></TD>
</TR>
<TR>
<TD>Gebruikersnaam</TD>
<TD><input type="text" name="UserName" size="20" STYLE="width: 120px"></TD>
</TR>
<TR>
<TD>Wachtwoord</TD>
<TD><input type="password" name="Password" size="20" STYLE="width: 120px"></TD>
</TR>
<TR>
<TD>Mobiel</TD>
<TD><input type="text" name="MobileNumber" size="10" STYLE="width: 120px"></TD>
</TR></TABLE>
<BR><BR><BR>
<input TYPE=submit NAME=Add VALUE="Opslaan" onclick=doeAdd(this.Form)>
</form></center> |
Dit werkt alleen niet omdat hij volgens mij niet snapt wat hij met UserId aanmoet en deze neemt ook niet mee... ik krijg namelijk de volgende stacktrace:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| 15:32:23,718 WARN [jbossweb] WARNING: Exception for /jspweb/storingsmelder_AddU
ser.jsp?step=A&UserName=Pietje&Password=Puk&MobileNumber=0641319958&Add=Opslaan
java.lang.NumberFormatException:
at java.lang.Integer.parseInt(Integer.java:426)
at java.lang.Integer.<init>(Integer.java:567)
at org.apache.jsp.storingsmelder_0005fAddUser$jsp._jspService(storingsme
lder_0005fAddUser$jsp.java:100)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspSer
vlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
81)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360
)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicati
onHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:5
58)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplication
Context.java:507)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
at org.mortbay.http.HttpServer.service(HttpServer.java:863)
at org.jboss.jetty.Jetty.service(Jetty.java:460)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:
201)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455) |
Hierin is dus ook geen UserID meegenomen. Maar als ik voor de UserID een harde waarde ingeef krijg ik natuurlijk een database error omdat hij daar op autonummering staat. Weet iemand hoe dit op te lossen is?