1

当我在 oracle web-logic 版本 12c 上部署时,我正在使用 Java EE6 制作 web 服务,它工作正常,但是在 web 服务响应上,我想做一些与命名空间相关的自定义,所以我制作了 package-info.java 文件,如下所示


@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.simple.org/",
attributeFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
        elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

package example;

基本上我需要这个包,每个标签都应该是合格的,但是在添加这个文件和结果之后没有什么不同,所以有人可以帮助我如何在 oracle weblogic 上解决这个问题?

顺便说一句,当我在 glassfish 3 上部署时,它的工作正常意味着有一些与 oracle weblogic 有关的东西。

4

1 回答 1

0

两天前我们遇到了完全相同的问题。在我们的案例中,解决方案是从服务实现类中删除所有方法级别的注释,并在 endpointInterface 属性的 @WebService 注释中指定接口的完全限定名称。

例子:

@Stateless
@WebService(name = "...", portName = "...", serviceName = "...", targetNamespace = "http://..", endpointInterface = "...")
public class ServiceImpl implements Service {
...
}

(我们需要@Stateless 注释,并且 web 服务被打包在后端的 ear 文件中)。

对我们有用的另一种方法是使 web 服务实现类不实现服务接口(实际上破坏了两者之间的连接)并将所有注释复制到实现类。

于 2012-05-31T12:39:11.153 回答