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

javax.jws.WebService:无法生成指定的XSD文件,java,web-services,websphere,Java,Web Services,Websphere,我有两只耳朵在WebSphere上运行 在每一个Web服务中,我都有相同的Web服务,实现方式如下: 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

我有两只耳朵在WebSphere上运行

在每一个Web服务中,我都有相同的Web服务,实现方式如下:

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
和具有相同的内容

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

错误:一般错误

无法生成指定的XSD文件

(在另一种情况下,它可以正常工作)

我的问题是:

  • 我想在某个地方放一个断点,看看在生成XSD时发生了什么。我应该把它放在哪里
  • 我在哪里可以找到这两个Web应用程序之间的差异?查看是什么阻止其中一个生成XSD
  • 还有其他线索吗
多谢各位

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

  • 它仍然没有说太多,没有显示错误。我可以在
    wstemp
    中找到xsd(两个应用程序的内容相同),但仍然不知道为什么不能在其中一个应用程序中提供xsd。如果没有显示错误,请使用更复杂的跟踪字符串:
    com.ibm.ws.*=all
    。IBM非常擅长的一件事是,它们会发出数量惊人的跟踪线。你只需要找到正确的跟踪范围。我激活了所有日志,但它仍然没有说明这一点:(但我刚刚将我的一个应用程序上下文根从
    /
    更改为
    /app1
    ,现在它可以工作了……(另一个已经是
    /app2
    )我不知道这是相关的。但我仍然不知道它为什么不能与
    /
    一起工作。你最初的问题显示,好像每个Web应用程序都映射到它自己的上下文根,它们都不是
    /
    。是的,它实际上是
    /
    /app2
    ,我不知道它与这个问题相关。对此表示抱歉。