Вопрос: Как настроить глобальное целевое пространство имен в веб-службах JAX-WS?


У меня много конечных точек, аннотированных с помощью @WebService(targetNamespace = "mynamespace"), каждый @WebResult а также @WebParam имеет то же определение targetNamespace = "mynamespace",

Есть ли способ настроить JAX-WS (реализация Metro) для использования "mynamespace" как targetNamespace по умолчанию?

Я хотел бы использовать аннотации без каких-либо атрибутов и избавиться от дубликатов объявлений, так же, как соглашение по конфигурации.


7


источник


Ответы:


Только поставьте targetNamespace в интерфейс конечной точки обслуживания  или реализация услуг боб ,

/**
* Annotated Implementation Object
*/
@WebService(
    name = "CustomerService",
    targetNamespace = "http://org.company.services"
)
public class CustomerService {
    @WebMethod
    @WebResult(name="CustomerRecord")
    public CustomerRecord locateCustomer(
        @WebParam(name="FirstName") String firstName,
        @WebParam(name="LastName") String lastName,
        @WebParam(name="Address") USAddress addr) {
        ...
    }
};

Если @WebResult или @WebParam не имеют targetNamespace, по умолчанию используется targetNamespace для веб-службы.

В другой руке вы можете избежать всех аннотаций и использовать только @WebService если вам не нужен что-то обычай с JAX-B.

См. Больше в Метаданные веб-служб JSR-181 для платформы JavaTM


3