[JBoss Seam] - Question on Injection an Context
by hasc
Hi,
i have some trouble propably because of a misunderstanding with resrouce injection.
I have a Stateful bean in conversation scope. The bean is responsible for managing some user input. The user data is stored in an object (calculation) which is injected in the manager bean.
| @Stateful
| @Scope(ScopeType.CONVERSATION)
| @Name("manager")
| public class CalculationManagerBean implements CalculationManager {
|
| @In Calculation calculation
| }
|
Now on a special page i want to manipulte a list wich is an attribute of the calculation object. I thought a component with ScopeType.PAGE is a good candidate to offer the methods to add change and remove list elements. So i wrote a component which injects the calculation object.
| @Name("listmanager")
| @Scope(ScopeType.PAGE)
| public class ListManager implements Serializable{
|
| @In
| Calculation calculation;
|
| @DataModel
| List<ListItem> list;
|
| public void addItem() {
| list.add(item);
| calculation.setList(list);
| }
|
|
I want to save the manipulated list in the calculation object whenever the list changes. The problem is that if i call the setter method it has no effect on the calculation method.
I guess is accociated with the scope, so conversion is longer than page. But i dont have a proper solution or a better way to achieve what i want.
Help would be great.
regards,hasc
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4090213#4090213
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4090213
16Â years, 8Â months
[Persistence, JBoss/CMP, Hibernate, Database] - Re: Closing a result set you left open!, MySQL
by BGMF
Hm...
I have no idea, but maybe you should change your persistence xml a little bit
I got a error because I had not entered the Hibernate Dialect
| <properties>
| <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
| </properties>
|
how do you access those TestBean?
I was told to write an extra class with source code like this
| try
| {
| Properties properties = new Properties();
| properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
| properties.put("java.naming.factory.url.pkgs","=org.jboss.naming:org.jnp.interfaces");
| properties.put("java.naming.provider.url","jnp://localhost:1099");
|
| InitialContext iContext = new InitialContext(properties);
|
| TologDatabaseQueryResponderRemote remote =
| (TologDatabaseQueryResponderRemote) iContext.lookup("TologResponderEAR/TologDatabaseQueryResponder/remote");
| }
| catch ( NamingException e )
| {
| throw new DatabaseQueryResponderException("NamingException while trying to connect to a remote interface:\n"+e.getLocalizedMessage());
| }
|
But I have to admit, that I also have the next problems - but ok - none of your business - you have your own problems...
Greetings
BGMF
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4090210#4090210
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4090210
16Â years, 8Â months
[Javassist user questions] - How can we manage session using JAX-WS?
by contactnag
Hi,
We are currently using the Jboss 4.0.5 GA, JAX-WS webservices. I am trying to implement session management. I am getting WebServiceContext injection is null. Please find the code below which I have implemented Server and client side for session management. Can anyone help me why I am getting WebServiceContext null. If you have any code works on Jboss4.0.5 it is really helpful for me
Server Side code
--------------------
/*
* Hello.java
*
* Created on September 24, 2007, 10:42 AM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package cisco;
import javax.jws.*;
import javax.xml.ws.WebServiceContext;
import javax.annotation.Resource;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.handler.MessageContext;
import javax.servlet.http.HttpSession;
@WebService
public class Hello {
/**
* WebServiceContext is injected by the JAX-WS Runtime
*/
@Resource
private WebServiceContext wsContext;
/**
* another way to inject WebServiceContext
* make sure this is not a WebMethod
*
*/
/*
@WebMethod(exclude = true)
@Resource public void initializeContext(WebServiceContext wsContext) {
System.out.println("Setting WebServiceContext");
this.wsContext = wsContext;
}
*/
@WebMethod
public int getCounter() {
MessageContext mc = wsContext.getMessageContext();
HttpSession session = ((javax.servlet.http.HttpServletRequest) mc.get(MessageContext.SERVLET_REQUEST)).getSession();
// Get a session property "counter" from context
if (session == null)
throw new WebServiceException("No session in WebServiceContext");
Integer counter = (Integer) session.getAttribute("counter");
if (counter == null) {
counter = new Integer(0);
System.out.println("Starting the Session");
}
counter = new Integer(counter.intValue() + 1);
session.setAttribute("counter", counter);
return counter;
}
/**
* Lifecycle method called before servicing any requests
*/
@PostConstruct
@WebMethod(exclude = true)
public void onBeginService() {
System.out.println("Called onBeginService: Session test");
// Initialize resources need by the Service
// ....
}
/**
* Lifecycle method called before destroying the service instance
*/
@PreDestroy
@WebMethod(exclude = true)
public void onEndService() {
System.out.println("Called onEndService: Session test");
// Clean up resources need by the Service
// ....
}
}
Client Clode:
try {
cisco.HelloService service = new cisco.HelloService();
cisco.Hello port = service.getHelloPort();
((BindingProvider)port).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY,new Boolean(true));
// TODO process result here
//int result = port.getCounter();
//out.println("Result = "+result);
//Hello proxy = new HelloService().getHelloPort();
//((BindingProvider)proxy).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
int result = port.getCounter();
System.out.println(result);
result = port.getCounter();
System.out.println(result);
} catch (Exception ex) {
ex.printStackTrace();
}
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4090201#4090201
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4090201
16Â years, 8Â months