You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Neo Anderson <ja...@yahoo.co.uk> on 2007/11/04 01:28:08 UTC

tapestry cache and naming problem

I have a project which consists of web  and ejb modules. The web module exploits Tapestry 4.0.2 and ejb is version 3. The EJB runs on Jboss 4.2.2. The Operating System is Gnu/ Linux with kernel 2.6.16.  

My first questions is, according to the document, I am able to disable tapestry cache  in  order to see the change made during testing my web project. So I set the the attribute "-Dorg.apache.tapestry.disable-caching=true" in run.sh which shows

=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: /home/User/apps/jboss-4.2.2.GA

  JAVA: /home/User/apps/jdk1.6.0_01/bin/java

  JAVA_OPTS: -Dprogram.name=run.sh -server -Dorg.apache.tapestry.disable-caching=true  -Djava.net.preferIPv4Stack=true

  CLASSPATH: /home/User/apps/jboss-4.2.2.GA/bin/run.jar:/home/User/apps/jdk1.6.0_01/lib/tools.jar

=========================================================================

I found the cache still exists because the first page (Home.html) originally I set the password field to type = "text"; then change it to type = "password". Unfortunately, the the html source of generated page still shows type = "text", resulting in the password filed still displays characters that user types. What part I might miss in order to disable the cache.

My second question is - when connecting to stateless session bean, jboss always issues error "javax.naming.NameNotFoundException: LoginService not bound". LoginService is a Stateless session, which implements Remote and Local interface, as follow: 

@Stateless
public class LoginService implements LoginServiceRemote, LoginServiceLocal{
...
    public static final String RemoteJNDIName = LoginService.class.getSimpleName() + "/remote";
    public static final String LocalJNDIName = LoginService.class.getSimpleName() + "/local";

    @Override
    public Boolean validate(UserProfile userProfile) {
     ...
    }
}

@Remote
public interface LoginServiceRemote extends ILoginService{
...
}

@Local
public interface LoginServiceLocal extends ILoginService{
...
}

public interface ILoginService{
    public Boolean validate(UserProfile userProfile);
}

It looks like I have successfully created Stateless Bean because the jmx-console displays 

...
jboss.j2ee
ear=projeect-j2ee.ear,jar=project-ejb.jar,name=LoginService,service=EJB3
...

Also, the terminal shows 

 [EJBContainer] STARTED EJB: com.project.bi.common.service.LoginService ejbName: LoginService

But why can't I lookup the LoginService bean successfully? 

The way how I lookup bean is to 

First,
        ILoginService remoteLoginService = 
            (ILoginService) lookupJNDI(LoginService.RemoteJNDIName);

Then, validate that user. 
    loginService.validate(new UserProfile(getUserName(), getPassword()));

Where did I do it wrong? Or what parts I might miss?

I appreciate any suggestion.

Thank you very much.







      ___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the answer. Try it
now.
http://uk.answers.yahoo.com/