将数据传递给SOAP Web服务

时间:2017-08-10 13:40:44

标签: java web-services soap

我创建了一个Web服务,并在localhost上的GlassFish上进行了解析。

@WebService
public class ProductCatalog {
  ProductServiceImpl productService = new ProductServiceImpl();
  public boolean addProductCategories(String category) {
    return productService.addCategory(category);
  }
  public List<String> getProductCategories() {
    return productService.getCategories();
  }
}

我的服务类

public class ProductServiceImpl {
    List<String> categories = new ArrayList<>();
    public boolean addCategory(String categoryName) {
        return categories.add(categoryName);
    }
    public List<String> getCategories() {
        return categories;
    }
}

通过GF管理面板我检查了两种方法。他们工作。我可以添加类别或获取所有现有类别。

之后我导入了wsdl并获得了以下类。

enter image description here

然后我创建了一个新项目并向其添加了导入的类。

public class DataController {
  public static void main(String[] args) {
    String category = "Horror";
    ProductCatalog productCatalog = new ProductCatalog() {
      public boolean addProductCategories(String arg0) {
        return false;
      }

      public List<String> getProductCategories() {
        return null;
      }
    };

    productCatalog.addProductCategories(category);

    ProductCatalogService productCatalogService = new ProductCatalogService();
  }
}

现在我不想添加新类别,但不知道该怎么做。

productCatalog.addProductCategories(category);

不起作用。该应用程序运行,但通过GF管理面板检查现有类别时,我发现没有添加任何类别。

是什么原因?

1 个答案:

答案 0 :(得分:0)

我用错了方法。这应该是这样的。

public class DataController {
  public static void main(String[] args) {
    String category = "Anime";
    ProductCatalogService productCatalogService = new ProductCatalogService();
    ProductCatalog productCatalog = productCatalogService.getProductCatalogPort();
    productCatalog.addProductCategories(category);
    List<String> categories = productCatalog.getProductCategories();
    for(String categoryName : categories){
      System.out.println(categoryName);
    }
  }
}