Я создал Bean, который является составным bean-компонентом (содержит экземпляры других bean-компонентов). Объявлен с помощью нотации, так что он обрабатывает данные объекта как xml data. Ниже bean-компонент villageInvigilator содержит объекты person, user и address. У меня есть объявил эти классы с аннотациями xml (xml привязка). Теперь я пытаюсь отправить данные xml через вызов post rest, чтобы сбросить данные в ML, но это не удалось из-за ошибки ниже. Может кто-нибудь помочь мне, что пошло не так в приведенном ниже коде.
com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java class com.sun.jersey.multipart.MultiPart, and Java type class com.sun.jersey.multipart.MultiPart, and MIME media type multipart/mixed; boundary=Boundary_2_1591997445_1586182536010 was not found
at com.sun.jersey.api.client.RequestWriter$RequestEntityWriterImpl.<init>(RequestWriter.java:199) ~[jersey-client-1.19.4.jar:1.19.4]
at com.sun.jersey.api.client.RequestWriter.getRequestEntityWriter(RequestWriter.java:248) ~[jersey-client-1.19.4.jar:1.19.4]
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.getHttpEntity(ApacheHttpClient4Handler.java:241) ~[jersey-apache-client4-1.17.jar:1.17]
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.getUriHttpRequest(ApacheHttpClient4Handler.java:197) ~[jersey-apache-client4-1.17.jar:1.17]
at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:153) ~[jersey-apache-client4-1.17.jar:1.17]
at com.marklogic.client.impl.DigestChallengeFilter.handle(DigestChallengeFilter.java:34) ~[marklogic-client-api-4.0.1.jar:na]
at com.sun.jersey.api.client.filter.HTTPDigestAuthFilter.handle(HTTPDigestAuthFilter.java:494) ~[jersey-client-1.19.4.jar:1.19.4]
at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.4.jar:1.19.4]
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) ~[jersey-client-1.19.4.jar:1.19.4]
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) ~[jersey-client-1.19.4.jar:1.19.4]
at com.sun.jersey.api.client.WebResource$Builder.put(WebResource.java:539) ~[jersey-client-1.19.4.jar:1.19.4]
at com.marklogic.client.impl.JerseyServices.putPostDocumentImpl(JerseyServices.java:1503) ~[marklogic-client-api-4.0.1.jar:na]
at com.marklogic.client.impl.JerseyServices.putDocument(JerseyServices.java:1199) ~[marklogic-client-api-4.0.1.jar:na]
at com.marklogic.client.impl.DocumentManagerImpl.write(DocumentManagerImpl.java:919) ~[marklogic-client-api-4.0.1.jar:na]
at com.marklogic.client.impl.DocumentManagerImpl.write(DocumentManagerImpl.java:757) ~[marklogic-client-api-4.0.1.jar:na]
at com.marklogic.client.impl.DocumentManagerImpl.write(DocumentManagerImpl.java:701) ~[marklogic-client-api-4.0.1.jar:na]
at com.kc.serviceImplementation.VillageInspectorOperationsImpl.villageInspectorRegistration(VillageInspectorOperationsImpl.java:112) ~[classes/:na]
at com.kc.web.VillageInspectorRESTController.createUser(VillageInspectorRESTController.java:37) ~[classes/:na]
package com.kissan.datatypes;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "villageInspector")
public class VillageInspector {
private String id;
private Person person;
private User user;
private Address address;
public VillageInspector() {
}
public VillageInspector(String id, Person person, User user, Address address) {
super();
this.id = id;
this.person = person;
this.user = user;
this.address = address;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@XmlAttribute
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
Код реализации:
public void villageInspectorRegistration(VillageInspector villageInspector) {
// TODO Auto-generated method stub
DocumentMetadataHandle metadata = new DocumentMetadataHandle();
List<String> str = new ArrayList<String>();
str.add("villageInspectors");
metadata.getCollections().addAll(str);
JAXBHandle<VillageInspector> contentHandle = getUserDetailsHandle();
contentHandle.set(villageInspector);
xmlDocumentManager.write(commonUtils.getDocId(villageInspector.getId(),objectType), metadata, contentHandle);
}
private JAXBHandle<VillageInspector> getUserDetailsHandle() {
try {
JAXBContext context = JAXBContext.newInstance(VillageInspector.class);
return new JAXBHandle<VillageInspector>(context);
} catch (JAXBException e) {
throw new RuntimeException("Unable to create Village Inspector JAXB context", e);
}
}