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

2日前にまったく同じ問題が発生しました。この場合の解決策は、サービス実装クラスからすべてのメソッドレベルのアノテーションを削除し、endpointInterface属性の@WebServiceアノテーションでインターフェイスの完全修飾名を指定することでした。

例:

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

(@Statelessアノテーションが必要であり、Webサービスはバックエンドのearファイルにパッケージ化されていました)。

私たちのために機能した代替メソッドは、Webサービス実装クラスをサービスインターフェイスを実装しないようにし(実際には2つの間の接続を切断し)、すべてのアノテーションを実装クラスにコピーすることでした。

于 2012-05-31T12:39:11.153 に答える