[jboss-user] [JBoss Seam] - Re: How to Handle POST Callbacks from a third party appliati
nynymike
do-not-reply at jboss.com
Sun Sep 9 23:07:17 EDT 2007
I am getting a NPE... I must be doing something wrong! But what...
pages.xml
| <page view-id="/jbillingCallbackHandler.xhtml"
| action="#{jBillingCallbackHandlerAction.processPost}">
| <param name="cmd" value="#{jbillingCallback.cmd}"/>
| <param name="user_id" value="#{jbillingCallback.user_id}"/>
| <param name="login_name" value="#{jbillingCallback.login_name}"/>
| <param name="from_status" value="#{jbillingCallback.from_status}"/>
| <param name="to_status" value="#{jbillingCallback.to_status}"/>
| </page>
|
Error
| ... 51 more
| Caused by: java.lang.NullPointerException
| at us.ziacom.vm.action.JbillingCallbackHandlerAction.processPost(Jbillin
| gCallbackHandlerAction.java:21)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
| java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
| sorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.
| java:112)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationCo
| ntextImpl.java:166)
| at org.jboss.seam.intercept.EJBInvocationContext.proceed(EJBInvocationCo
| ntext.java:44)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocation
| Context.java:56)
| at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackI
| nterceptor.java:31)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocation
| Context.java:68)
| at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterc
| eptor.java:46)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocation
| Context.java:68)
| at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodConte
| xtInterceptor.java:42)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocation
| Context.java:68)
| at org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke
| (EntityManagerProxyInterceptor.java:26)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocation
| Context.java:68)
| at org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInv
| oke(HibernateSessionProxyInterceptor.java:27)
| at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocation
| Context.java:68)
| at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:
| 106)
| at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionB
| eanInterceptor.java:50)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
| java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
| sorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:597)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationCo
| ntextImpl.java:118)
| at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3Int
| erceptorsInterceptor.java:63)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.
| java:101)
| at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invok
| e(TransactionScopedEntityManagerInterceptor.java:54)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.
| java:101)
| at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsI
| nterceptor.java:47)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.
| java:101)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
| ... 84 more
|
Action
| @Stateless
| @Scope(ScopeType.STATELESS)
| @Name("jBillingCallbackHandlerAction")
| public class JbillingCallbackHandlerAction implements
| IJbillingCallbackHandlerAction {
|
| @In(required=false)
| JbillingCallback callback;
|
| @Override
| public String processPost() {
| System.out.println("**********" + callback.getCmd());
| System.out.println("**********" + callback.getUser_id());
| System.out.println("**********" + callback.getLogin_name());
| System.out.println("**********" + callback.getFrom_status());
| System.out.println("**********" + callback.getTo_status());
| return "home";
| }
|
HTML Test Page that Posts Request
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
| <html>
| <head>
| <title>MyHtml.html</title>
|
| <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
| <meta http-equiv="description" content="this is my page">
| <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
|
| <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
|
| </head>
|
| <body>
| This is my HTML page.
| <br>
| <form method="post" action="http://jboss.ziacom.us:8080/voicemail/jbillingCallbackHandler.seam" name="jbillingTest">
| <input type="hidden" value="foo" name="cmd">
| <input type="hidden" value="bar" name="user_id">
| <input type="hidden" value="spam" name="login_name">
| <input type="hidden" value="eggs" name="from_status">
| <select size="4" name="to_status">
| <option selected value="spam">foo</option>
| <option value="eggs">bar</option>
| </select>
| <BR />
| <input type="submit" value="Submit" name="submit">
| </form>
| </body>
| </html>
|
Model
| import org.jboss.seam.annotations.Name;
|
| @Name("jbillingCallback")
| public class JbillingCallback {
| private String cmd;
| private String user_id;
| private String login_name;
| private String from_status;
| private String to_status;
|
| /**
| * A string that identifies jbilling's call. It is always set to ?ageing_update? by
| * jbilling,and allows you to uniquely identify a jbilling call (in case the callback's
| * url is used for other purposes).
| */
| public String getCmd() {
| return cmd;
| }
| public void setCmd(String cmd) {
| this.cmd = cmd;
| }
|
| /**
| * The User ID of the user that is undergoing a status change in jbilling. You can
| * use this ID to identify the user directly, or otherwise query jbilling via the API to
| * obtain the data for the user, should you need further information.
| */
| public String getUser_id() {
| return user_id;
| }
| public void setUser_id(String user_id) {
| this.user_id = user_id;
| }
|
| /**
| * The user name of the user that is undergoing a status change.
| */
| public String getLogin_name() {
| return login_name;
| }
| public void setLogin_name(String login_name) {
| this.login_name = login_name;
| }
|
| /**
| * The status the user is transitioning from. This is the status the user had
| * before the transition took place.
| */
| public String getFrom_status() {
| return from_status;
| }
| public void setFrom_status(String from_status) {
| this.from_status = from_status;
| }
|
| /**
| * The status the user is transitioning to. This is the status the user has once
| * the transition took place. Subsequent calls to getUser() in the API will return this
| * status code.
| */
| public String getTo_status() {
| return to_status;
| }
| public void setTo_status(String to_status) {
| this.to_status = to_status;
| }
| }
|
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4082442#4082442
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4082442
More information about the jboss-user
mailing list