Java 我的soapweb客户端在尝试运行时提供了一个nullpointer执行选项

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

IDE:eclipselunasr2 Java版本:8更新45 服务器:ApacheTomcat 8.0.21

我正在Eclipse中创建一个动态Web应用程序,以及用于uni分配的相关REST和SOAPWeb服务。我的问题是关于web服务的客户端的。客户端将要求用户通过在控制台中键入选项编号,从控制台中显示的一系列选项中进行选择。然后,它将根据所选选项进行操作。当我尝试第一个选项“查看所有文章”时,它会给我一个空指针异常。完整的细节,包括类和控制台输出如下

控制台输出:

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++)