[jboss-user] [JBoss Seam] - Re: Problem running integration test

nayanj do-not-reply at jboss.com
Wed Sep 12 11:19:20 EDT 2007



WEB-INF\components.xml  specifies following:

  | <security:identity authenticate-method="#{authenticator.authenticate}"/>  
  | 



  | @Name("authenticator")
  | public class AuthenticatorAction {
  | 
  | 	@Out(required = false, scope = SESSION)
  | 	private User user;
  | 
  | 	public boolean authenticate() {
  |             // does authentication here
  |            if( authentication successful ){
  |            user = new User();
  |            user.setGivenName("Given");
  |            user.setLastName("Last");
  |            return true;
  |            }
  |            return false;
  |         }
  | }
  | 

User.java

  | @Name("user")
  | @Scope(SESSION)
  | public class User implements Serializable {
  | 
  | 	private String username;
  | 
  | 	private String password;
  | 
  | 	private String lastName;
  | 
  | 	private String givenName;
  | 
  |        // followed by get and set methods for all the instance variables 
  | }
  | 

build.xml snippet to run test

  | <property name="test.src" location="testsrc"/>
  | 	<path id="testng.classpath">
  | 		<fileset dir="${lib}/mc" includes="*.jar"/>
  | 		<fileset dir="${lib}" includes="*.jar" excludes="commons-el-1.0.jar"/>		
  | 		<pathelement location="${build.home}/classes" />
  | 		<pathelement location="${webinf}/classes" />
  | 		<pathelement location="${webinf}"/>
  | 	</path>
  | 
  | 	<taskdef name="testng" classpathref="testng.classpath" classname="org.testng.TestNGAntTask" />
  | 
  | 	<target name="tests.compile" depends="compile">
  | 			<mkdir dir="${build.home}/test/classes"/>
  | 			<javac destdir="${build.home}/classes" classpathref="testng.classpath" debug="true">
  | 				<src path="${test.src}" />
  | 			</javac>
  | 		</target>
  | 	
  | 	<target name="test" depends="tests.compile">
  | 		<delete dir="test-output" />
  | 		<testng classpathref="testng.classpath" outputdir="test-output">
  | 			<xmlfileset dir="${test.src}" includes="**/security/test/testng.xml" />			
  | 		</testng>
  | 	</target>
  | 

complete error log:

  |  [testng] 10:06:29,969 ERROR [SeamLoginModule] Error invoking login method
  |    [testng] java.lang.NullPointerException
  |    [testng] at org.jboss.seam.security.jaas.SeamLoginModule.login(SeamLoginModule.java:104)
  |    [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |    [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  |    [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  |    [testng] at java.lang.reflect.Method.invoke(Unknown Source)
  |    [testng] at javax.security.auth.login.LoginContext.invoke(Unknown Source)
  |    [testng] at javax.security.auth.login.LoginContext.access$000(Unknown Source)
  |    [testng] at javax.security.auth.login.LoginContext$5.run(Unknown Source)
  |    [testng] at java.security.AccessController.doPrivileged(Native Method)
  |    [testng] at javax.security.auth.login.LoginContext.invokeCreatorPriv(Unknown Source)
  |    [testng] at javax.security.auth.login.LoginContext.login(Unknown Source)
  |    [testng] at org.jboss.seam.security.Identity.authenticate(Identity.java:247)
  |    [testng] at org.jboss.seam.security.Identity.authenticate(Identity.java:240)
  |    [testng] at org.jboss.seam.security.Identity.login(Identity.java:170)
  |    [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |    [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  |    [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  |    [testng] at java.lang.reflect.Method.invoke(Unknown Source)
  |    [testng] at com.sun.el.parser.AstValue.invoke(AstValue.java:174)
  |    [testng] at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:286)
  |    [testng] at org.jboss.seam.util.UnifiedELMethodBinding.invoke(UnifiedELMethodBinding.java:36)
  |    [testng] at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
  |    [testng] at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
  |    [testng] at org.jboss.seam.actionparam.ActionParamBindingHelper.invokeTheExpression(ActionParamBindingHelper.java:58)
  |    [testng] at org.jboss.seam.actionparam.ActionParamMethodBinding.invoke(ActionParamMethodBinding.java:75)
  |    [testng] at org.jboss.seam.mock.SeamTest$Request.invokeMethod(SeamTest.java:401)
  |    [testng] at security.test.LoginTest$2.invokeApplication(LoginTest.java:38)
  |    [testng] at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:489)
  |    [testng] at security.test.LoginTest.testSuccessfulLogin(LoginTest.java:52)
  |    [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |    [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  |    [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  |    [testng] at java.lang.reflect.Method.invoke(Unknown Source)
  |    [testng] at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:604)
  |    [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:470)
  |    [testng] at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:564)
  |    [testng] at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:830)
  |    [testng] at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
  |    [testng] at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
  |    [testng] at org.testng.TestRunner.runWorkers(TestRunner.java:678)
  |    [testng] at org.testng.TestRunner.privateRun(TestRunner.java:624)
  |    [testng] at org.testng.TestRunner.run(TestRunner.java:495)
  |    [testng] at org.testng.SuiteRunner.runTest(SuiteRunner.java:300)
  |    [testng] at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:295)
  |    [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:275)
  |    [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:190)
  |    [testng] at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:792)
  |    [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:765)
  |    [testng] at org.testng.TestNG.run(TestNG.java:699)
  |    [testng] at org.testng.TestNG.privateMain(TestNG.java:824)
  |    [testng] at org.testng.TestNG.main(TestNG.java:802)
  |    [testng] FAILED: testSuccessfulLogin
  |    [testng] javax.el.PropertyNotFoundException: ELResolver cannot handle a null base Object with identifier 'user'
  |    [testng] at com.sun.el.lang.ELSupport.throwUnhandled(ELSupport.java:52)
  |    [testng] at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:75)
  |    [testng] at com.sun.el.parser.AstValue.getValue(AstValue.java:114)
  |    [testng] at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:195)
  |    [testng] at org.jboss.seam.util.UnifiedELValueBinding.getValue(UnifiedELValueBinding.java:34)
  |    [testng] at org.jboss.seam.mock.SeamTest$Request.getValue(SeamTest.java:366)
  |    [testng] at security.test.LoginTest$2.renderResponse(LoginTest.java:46)
  |    [testng] at org.jboss.seam.mock.SeamTest$Request.run(SeamTest.java:521)
  |    [testng] at security.test.LoginTest.testSuccessfulLogin(LoginTest.java:52)
  |    [testng] ... Removed 22 stack frames
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4083511#4083511

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4083511



More information about the jboss-user mailing list