Как включить класс констант в генерацию wsdl - PullRequest
3 голосов
/ 10 августа 2011

Добрый день!

У меня есть константный класс, который я хочу автоматически включить при создании моего wsdl ... Но всякий раз, когда я автоматически генерирую клиента в моей среде IDE, класс constant_class не появляется .. Почему? Как я могу решить эту проблему ..

Мой код выглядит следующим образом:

ПОСТОЯННЫЙ КЛАСС ...

public final class TestConstants {

    public static String TEST_CONSTANT = "TEST_CONSTANT";

}

Спасибо.

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Насколько я знаю, вы не можете включать константы в WSDL.

Если вам нужно указать какой-то набор констант для использования, вы можете сойти с рук с помощью entity .

Другой подход будет заключаться в использовании перечислений для уменьшения возможных значений:

<xsd:simpleType name="ConstantsType">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="TEST_CONSTANT_1" />
    <xsd:enumeration value="TEST_CONSTANT_2" />
    ....
    <xsd:enumeration value="TEST_CONSTANT_N" />
  </xsd:restriction>
</xsd:simpleType>

, а затем иметь некоторые элементы этого типа (т.е. их значение является одной из констант):

<xsd:element name="SomeElement" type="ConstantsType" />

Но кроме этих двух решений я не очень понимаю, как включить константы в WSDL.

Мне кажется, что этот класс не связан с контрактом сообщений службы, поэтому он должен принадлежать WSDL.Что ты пытаешься сделать?Может быть, есть лучший способ сделать это.

0 голосов
/ 17 ноября 2016

чтобы включить константы в wsdl, вы должны использовать перечисление, чтобы указать свои константы, добавив ограничение в файл xsd, а затем ваш веб-сервер оценивает запрос перед использованием кода Java.

используйте так:

public enum ACTION {
        ADVERTENCIA("com.util.log.level.WARNING"),
        INFO("com.util.log.level.INFO");

        private String value;

        ACTION(String value){
            this.value = value;
        }

        public String getValue(){
            return value;
        }
    }

И, наконец, вы можете использовать enum как параметр в веб-сервисе:

public String log(@WebParam(name = "action`enter code here`") ACTION action) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...