Размаршалировать объект java в веб-методе JAX-WS - PullRequest
0 голосов
/ 14 июля 2020

У меня есть класс mov ie с тремя полями movieId, movieName, yearMovieRelease. Я хочу реализовать WebMethod в WebService, который может принимать объект mov ie и добавлять его в список mov ie.

Я видел много руководств по маршаллингу и демаршаллингу через xml файл, но я все еще не понимаю, как демаршалировать этот объект mov ie как параметр, не могли бы вы помочь?

более подробная информация о классах доступна здесь .

@Stateless
@LocalBean 
@WebService(serviceName = "MovieServiceJAXWS")
public class MovieServiceJAXWS { 

     @EJB MovieData movieData;
     
     @WebMethod 
        public String addMovie(Movie movie){                
                return movieData.addMovie(movie);
        }
}

дает soap запрос XML как показано ниже

Soap запрос

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://soapj8test.tanmshar.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <soap:addMovie>
         <!--Optional:-->
         <arg0>
            <movieId>6</movieId>
            <!--Optional:-->
            <movieName>Movie6</movieName>
            <yearMovierelease>2020</yearMovierelease>
         </arg0>
      </soap:addMovie>
   </soapenv:Body>
</soapenv:Envelope>

но вывод запроса приводит к немаршалированной ошибке

Soap вывод запроса

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>Unmarshalling Error: null</faultstring>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>
...