Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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
从WSDL和XSD文件在不同于命名空间的包中生成Web服务Java类_Java_Web Services_Namespaces_Xsd_Wsdl - Fatal编程技术网

从WSDL和XSD文件在不同于命名空间的包中生成Web服务Java类

从WSDL和XSD文件在不同于命名空间的包中生成Web服务Java类,java,web-services,namespaces,xsd,wsdl,Java,Web Services,Namespaces,Xsd,Wsdl,我正在用Java技术从现有的WSDL和XSD文件开发一个web服务。web服务正在与名称空间以“java:”开头的现有客户端应用程序交互,例如targetNamespace=“java:com.mycompany.project”我无法更改客户端使用的名称空间。我使用NetBeans作为IDE,它接受WSDL和XSD文件,通过jax-ws自动生成类 因为名称空间以“java:”开头,所以应用服务器(我目前正在使用Glassfish,但可能会使用其他的)拒绝部署代码,因为自定义包不能位于“java

我正在用Java技术从现有的WSDL和XSD文件开发一个web服务。web服务正在与名称空间以“java:”开头的现有客户端应用程序交互,例如targetNamespace=“java:com.mycompany.project”我无法更改客户端使用的名称空间。我使用NetBeans作为IDE,它接受WSDL和XSD文件,通过jax-ws自动生成类

因为名称空间以“java:”开头,所以应用服务器(我目前正在使用Glassfish,但可能会使用其他的)拒绝部署代码,因为自定义包不能位于“java.”包之下。错误是:

Error occurred during deployment: Exception while deploying the app [MyWebService] : Prohibited package name: java.com.mycompany.projecta. Please see server.log for more details.
/NetBeansProjects/MyWebService/nbproject/build-impl.xml:288: 
The module has not been deployed.
            at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:210)
            at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:106)
            at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
            at sun.reflect.GeneratedMethodAccessor488.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
            at org.apache.tools.ant.Task.perform(Task.java:348)
            at org.apache.tools.ant.Target.execute(Target.java:390)
            at org.apache.tools.ant.Target.performTasks(Target.java:411)
            at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
            at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
            at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
            at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
            at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:284)
            at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
            at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
为了解决这个问题,我试图修改服务器端的WSDL和XSD文件,以便在不同的包中创建自动生成的类。我在WSDL中添加了以下内容:

<definitions... >
    ...
    <jaxws:bindings>
        <jaxws:package name="com.mycompany.projecta"/>
    </jaxws:bindings>
</definitions>

...
有些类现在是在“com.mycompany.projecta”包中生成的,但大多数不是。我试着添加

<xsd:schemaBindings>
    <xsd:package name="com.mycompany.projecta" />
</xsd:schemaBindings>

…元素,但它们似乎不起作用。它们被添加到WSDL中的“xsd:schema>xsd:annotation”。我在网上读了很多关于这个话题的信息,并尝试了其他的选择,但没有成功

您能为我提供一些指导或见解,说明我可能做错了什么,以便我可以在“com.mycompany.projecta”包中生成我的类并继续我的项目吗


谢谢大家!

我相信我已经解决了我的问题。我解开了上面的所有内容,并在jaxws-build.xml文件中为我的任务添加了一个“package”属性(我正在使用ANT构建项目):

这生成了“com.mycompany.projecta”下的所有类

我应该补充一点,通过阅读以下内容,我发现这是一种选择: