Java 如何使xsd文件可用于web服务客户端?
我正在我的公司开发一个新的web服务。我们有一个POJO应用服务器,通过CORBA和RMI与wxternal客户机通信。为了让事情变得更简单,我决定测试在没有servlet容器的情况下公开web服务的可能性 这是基本代码 连接到http://Java 如何使xsd文件可用于web服务客户端?,java,jax-ws,java-6,Java,Jax Ws,Java 6,我正在我的公司开发一个新的web服务。我们有一个POJO应用服务器,通过CORBA和RMI与wxternal客户机通信。为了让事情变得更简单,我决定测试在没有servlet容器的情况下公开web服务的可能性 这是基本代码 连接到http://localhost:1234/Service?wsdl工作正常。Web服务也可以工作。但是,由于wsdl文件中导入的某些地址的架构不可用,因此通过soapUI测试失败。我面临的错误是 404找不到 找不到请求的上下文 有没有办法让客户端可以访问这些xsd文
localhost
:1234/Service?wsdl工作正常。Web服务也可以工作。但是,由于wsdl文件中导入的某些地址的架构不可用,因此通过soapUI测试失败。我面临的错误是
404找不到
找不到请求的上下文
有没有办法让客户端可以访问这些xsd文件?这是我的一个大错误。我过于关注文件如何驻留在项目中,以及如何在已经实现的服务中访问它们(我们正在复制现有的内容),而完全忽略了生成的wsdl(我最近看到了太多)。所有xsd文件都可以访问,但url不同 我期望(在现有服务上测试)类似
http://foo:1234/xsd/Entity.xsd
相反,我得到了
http://foo:1234/Service?xsd=1
不确定这是否会影响任何内容,但您能否尝试使用127.0.0.1?,端点进行发布。发布(“http://127.0.0.1:1234/Service");代码>将地址更改为127.0.0.1没有帮助。这个问题的另一个副作用可能是WebService类上的@SchemaValidation注释不起作用。在tomcat上运行服务看起来很好,并且已启用验证。我基本上有两个选择:坚持使用内置jvm部署解决问题的计划,希望能够解决所描述的问题并享受重用大量可用代码的便利,或者部署到tomcat并找出如何在app server和容器之间传递消息。我更喜欢第一个(不必多说细节)
public class ServiceLauncher {
private Endpoint endpoint;
public ServiceLauncher(){
endpoint = Endpoint.create(new ServiceServer());
endpoint.publish("http://0.0.0.0:1234/Service");
}
}