Eclipse - 在创建新操作后更新WSDL

时间:2018-03-07 17:45:39

标签: java eclipse soap wsdl

我刚刚在eclipse中使用简单的操作实现了一个新的SOAP Web服务,生成并部署了wsdl并实现了一个客户端来检查是否一切正常。

它工作正常,但现在我想为我的WS添加更多操作,我似乎无法弄清楚如何更新WSDL以反映新的操作。

有人能解释一下这是怎么做到的吗?

谢谢!

这是我的界面:

public interface IService {


    public int sayHello(String msg);

    public int addCI(int i);

}

这是服务实现类:

@WebService
public class Service implements IService {

public Service() {}


@WebMethod
public int sayHello(String msg) {
    System.out.println("teste");
    return 200; 
}

@WebMethod
public int addCI(int i) {
    System.out.println("new element");
    return 200;
}

}

操作sayHello存在于wsdl中,而addCI则不存在。 在Eclipse中似乎没有办法从源代码重新生成WSDL,是吗?

1 个答案:

答案 0 :(得分:0)

我将假设您采用了“Java First”方法,并且您的WSDL正在自动生成。如果是这种情况,那么只要遵循以下规则,服务实现Bean(SIB)中的任何非静态/最终方法都将在WSDL中公开:

  • @WebMethod的公共方法,其中exclude元素设置为false。
  • 使用@WebMethod且没有exclude元素的公共方法(因为false是默认值)。
  • 公共方法未注释@WebMethod注释,但它们的声明类(可能是父类)具有@WebService注释。

示例:

@WebService
public class Test {

    @WebMethod
    public void foo(){
        //Operation in WSDL
    }

    public void newOperation(){
        //Also in WSDL
    }

    //Not in WSDL
    public static void main(String[] args) throws Exception{

    }
}