javax.jws.WebService:无法生成指定的XSD文件

时间:2014-05-28 15:13:26

标签: java web-services websphere

我在WebSphere上运行了两个EAR。

在每一个中我都有相同的WebService,实现如下:

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

import org.springframework.stereotype.Component;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

@WebService(serviceName = "GestionXService")
@SOAPBinding(style = Style.RPC)
@Component(value = "gestionXService")
public class GestionXService extends SpringBeanAutowiringSupport {

    @WebMethod(operationName = "searchClient")
    @WebResult(name = "ListCustomerEGBean")
    public CustomerEGBean searchClient(@WebParam(name = "nd") final String nd) {
        return null;
    }

}

在两个Web应用程序中,WSDL都是正确生成的:

来自https://localhost:4443/webapp1/GestionXService?WSDL

https://localhost:4443/GestionXService?WSDL并且内容相同。

但问题是我无法从两个webapps(带有上下文/的一个)生成XSD,它说:

  

错误:通用错误。

     

无法生成指定的XSD文件!

(另一方面它工作正常)

我的问题是:

  • 我想在某个地方设置一个断点,看看生成XSD时发生了什么。我应该把它放在哪里?
  • 我在哪里可以查找两个webapps之间的差异?要查看阻止其中一个生成XSD的原因。
  • 还有其他领导吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

  1. 您不能在生成XSD的位置放置断点。从您引用的代码中,您似乎依赖于WebSphere为您生成WSDL和XSD;这种生成在WebSphere的核心深处完成,你没有源代码级别的访问权。
  2. 唯一可能的方法是让您了解在WebSphere中启用JAX-WS跟踪的错误。编辑服务器的跟踪设置,并使用com.ibm.ws.websvcs.*=all作为跟踪字符串。 JAX-WS跟踪通常会揭示您在常规日志文件中看不到的问题的根本原因。