Java 我的soapweb客户端在尝试运行时提供了一个nullpointer执行选项
IDE:eclipselunasr2 Java版本:8更新45 服务器:ApacheTomcat 8.0.21 我正在Eclipse中创建一个动态Web应用程序,以及用于uni分配的相关REST和SOAPWeb服务。我的问题是关于web服务的客户端的。客户端将要求用户通过在控制台中键入选项编号,从控制台中显示的一系列选项中进行选择。然后,它将根据所选选项进行操作。当我尝试第一个选项“查看所有文章”时,它会给我一个空指针异常。完整的细节,包括类和控制台输出如下 控制台输出:Java 我的soapweb客户端在尝试运行时提供了一个nullpointer执行选项,java,eclipse,web-services,soap,wsdl,Java,Eclipse,Web Services,Soap,Wsdl,IDE:eclipselunasr2 Java版本:8更新45 服务器:ApacheTomcat 8.0.21 我正在Eclipse中创建一个动态Web应用程序,以及用于uni分配的相关REST和SOAPWeb服务。我的问题是关于web服务的客户端的。客户端将要求用户通过在控制台中键入选项编号,从控制台中显示的一系列选项中进行选择。然后,它将根据所选选项进行操作。当我尝试第一个选项“查看所有文章”时,它会给我一个空指针异常。完整的细节,包括类和控制台输出如下 控制台输出: java.lang.N
java.lang.NullPointerException
at uts.assignment2.soap.client.NewsClient.main(NewsClient.java:24)
NewsClient.java:
package uts.assignment2.soap.client;
import java.rmi.RemoteException;
import java.util.Scanner;
import javax.xml.rpc.ServiceException;
import au.edu.uts.www._31284.wsd_news.*;
public class NewsClient {
public static void main(String[] args) throws ServiceException,
RemoteException {
NewsSOAPServiceLocator locator = new NewsSOAPServiceLocator();
NewsSOAP service = locator.getNewsSOAPPort();
Scanner scanner = new Scanner(System.in);
for (;;) {
System.out.println("Select an option:");
System.out.println("1: view all articles");
System.out.println("2: delete an article");
System.out.println("3: exit");
System.out.print("enter choice: ");
int option = scanner.nextInt();
switch (option) {
case 1:
try {
for (int i = 0; i < service.getArticles().length; i++) {
Article article = service.getArticle(i);
System.out.println(article);
System.out.println();
//System.out.println(article.getAuthor());
//System.out.println();
//System.out.println(article.getPublishedDate());
//System.out.println();
//System.out.println(article.getShortText());
}
} catch (NullPointerException e) {
e.printStackTrace();
}
break;
case 2:
System.out
.print("Enter the ID of the article you wish to delete: ");
int id = scanner.nextInt();
service.deleteArticle(id);
break;
case 3:
System.exit(0);
break;
}
}
}
}
我的问题是我无法找出客户的下落。我可以看到NullPointerException指向哪一行,但我无法确定它落在哪里。感谢您的帮助。如果需要任何额外的信息,请询问,我将尽力提供。谢谢。请参见下面代码中的我的评论 NewsSOAP.java
@WebMethod
public News getArticles() {
News news = null;
try {
news = getNewsApp().getArticles(); //Recursive call of getArticles() within it's own method. Which in turn setting news=null, causing null pointer exception at service.getArticles().length in for loop.
}
NewsClient.java:
for (int i = 0; i < service.getArticles().length; i++)
for(int i=0;i
它指向哪一行?哪一行是NewsClient.java的第24行?@TimoSta:24行是try块中“for”循环开始的地方:for(int i=0;ifor (int i = 0; i < service.getArticles().length; i++)