Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使xsd文件可用于web服务客户端?_Java_Jax Ws_Java 6 - Fatal编程技术网

Java 如何使xsd文件可用于web服务客户端?

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文

我正在我的公司开发一个新的web服务。我们有一个POJO应用服务器,通过CORBA和RMI与wxternal客户机通信。为了让事情变得更简单,我决定测试在没有servlet容器的情况下公开web服务的可能性

这是基本代码

连接到http://
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");
    }
}