2013-11-12 2 views
0

У меня есть класс Java с методом, открытым как метод webservice. Ниже мой класс Java.Веб-сервис JAX-WS - получить часть ввода XML в String в поле

@WebService 
    public class TestService{ 

     public String testMethod(InputVO input) { 

     } 
    } 

     public class InputVO{ 
      private Data data; 

     } 

     public class Data{ 
      private String xmlData; 
     } 

Теперь в моем InputVO у меня есть поле данных, которое имеет строку xmlData.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:svc="http://test.svc.com/"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <svc:testMethod> 
     <arg0> 
      <data> 
       <!-- ANY XML CONTENT--> 
      </data> 
     </arg0> 
     </svc:service> 
    </soapenv:Body> 
</soapenv:Envelope> 

Это структура входного XML-файла, ожидаемого моей службой. Внутри элемента данных я должен иметь возможность передавать любой XML-контент. Теперь в моей службе testMethod, я должен получить эти данные в формате XML в элементе xmlData объекта Data. Я установил содержимое внутри данных в файле xsd моего wsdl.

<xs:complexType name="data"> 
    <xs:sequence> 
     <xs:any/> 
    </xs:sequence> 
    </xs:complexType> 

Но когда я просматриваю xmlData поле в InputVO, он приходит в нуль. Как установить полный XML-данные String в поле xmlData? Пожалуйста, помогите мне.

ответ

0

Проверьте, не были ли ваши классы правильно аннотированы, кажется, что некоторые аннотации XML отсутствуют.

+0

Я даю аннотацию @WebService для класса веб-сервиса. Есть ли что-то еще, что мне нужно дать? – Deepika

+0

кроме '@ WebService', пожалуйста, проверьте соответствие схемы XML-Java, т. Е. Привязки JAXB, такие как' @ XmlRootElement', к вашему настраиваемому параметру ввода для веб-службы. –

+0

Это внутренне позаботится о времени выполнения JAX-WS? Где я могу это указать? Не могли бы вы предоставить мне несколько примеров/учебников для этого? – Deepika