使用 XML 配置和注释初始化 java bean class 时出现空指针异常

Null Pointer Exception while initializing the java beans class using XML configuration and annotations

我在尝试初始化 java bean class 时遇到问题。 我收到空指针异常错误。

下面是代码片段。

我有豆子 xml 作为 LoginData.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

<bean id="gmailLogin" class="PojoExample">
    <property name="userName" value="abcd@gmail.com"/>
    <property name="password" value="xyz"/>
</bean>

`

和 bean class 作为 `PojoExample

public class PojoExample {
private String userName;
private String password;



public String getUserName() {
    return userName;
}

public void setUserName(String userName) {
    this.userName = userName;
}


public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}


}

`

我正在尝试通过以下代码class(PojoUtilization)初始化bean

 import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.testng.annotations.Test;

import java.util.concurrent.TimeUnit;


@ContextConfiguration({"classpath:LoginData.xml"})
public class PojoUtilization {

    @Autowired
    PojoExample gmailLogin;

@Test
    public void verify() {
        System.setProperty("webdriver.chrome.driver", "C://Users//E004146//Downloads//workspace/chromedriver.exe");
        WebDriver obj = new ChromeDriver();
        obj.manage().window().maximize();
        obj.get("https://www.google.com/gmail/about/#");
        System.out.println("Clicked on sign in button");
        obj.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        WebElement signIn = obj.findElement(By.xpath("//a[contains(text(),'Sign In')]"));
        signIn.click();
        WebElement userName = obj.findElement(By.id("identifierId"));
        userName.sendKeys(gmailLogin.getUserName());
        obj.close();
    }
}

当我尝试执行代码时出现空指针异常错误。

java.lang.NullPointerException
    at PojoUtilization.verify(PojoUtilization.java:29)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
    at org.testng.TestRunner.privateRun(TestRunner.java:648)
    at org.testng.TestRunner.run(TestRunner.java:505)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
    at org.testng.SuiteRunner.run(SuiteRunner.java:364)

尝试在 LoginData.xml 文件中添加 (<context:annotation-config />)

尝试在PojoExample中添加构造函数。 无参和二参

我通过继承 AbstractTestNGSpringContextTests 解决了问题 class。

public class PojoUtilization extends AbstractTestNGSpringContextTests  {
}

通过继承它,我可以初始化 Bean class。

 result = "abcd@gmail.com"