休止状態を介してデータベースから特定の値を取得し、seeter と getter を使用してこれらの値を設定する REST ful Web サービスがあります。値を取得することはできますが、Web サービスを使用しようとすると、「Java クラス、Java タイプ クラス、および MIME メディア タイプ application/xml のメッセージ ボディ ライターが見つかりませんでした」という例外が発生します。
私のWebサービスコードは
@Path("/IFConfig")
public class IFconfigService {
private static final String FILE_PATH = "C:\\Users\\298637\\Desktop\\sample.xml";
@GET
@Path("/get/{varX}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public IfMainbo Webserviceoutput(@PathParam("varX") String varX)
{
List iFObjects = new ArrayList();
String iFName=varX;
System.out.println("the parameter name is "+iFName);
IfMainbo ifMainbo = new IfMainbo();
IfMain ifMain = new IfMain();
FetchConfiguration passing = new FetchConfiguration();
iFObjects = passing.loadConfigData(iFName);
System.out.println("OBJECT SIZE"+iFObjects.size());
for (Iterator iterator = iFObjects.iterator(); iterator.hasNext();){
ifMain = (IfMain)iterator.next();
}
ifMainbo.setIfId(ifMain.getIfId());
ifMainbo.setIfName(ifMain.getIfName());
System.out.println(ifMainbo.getIfId());
System.out.println(ifMainbo.getIfName());
return ifMainbo;
}
}
私の提供クラスまたはセッターとゲッタークラスのコードは
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ifMainbo", propOrder = {
"entities",
"ifId",
"ifName"
})
public class IfMainbo implements MessageBodyWriter{
@XmlElement(required = true, nillable = true)
protected List<Object> entities;
protected String ifId;
protected String ifName;
/**
* Gets the value of the entities property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the entities property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getEntities().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Object }
*
*
*/
public List<Object> getEntities() {
if (entities == null) {
entities = new ArrayList<Object>();
}
return this.entities;
}
/**
* Gets the value of the ifId property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getIfId() {
return ifId;
}
/**
* Sets the value of the ifId property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setIfId(String value) {
this.ifId = value;
}
/**
* Gets the value of the ifName property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getIfName() {
return ifName;
}
/**
* Sets the value of the ifName property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setIfName(String value) {
this.ifName = value;
}
@Override
public long getSize(Object arg0, Class arg1, Type arg2, Annotation[] arg3,
MediaType arg4) {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean isWriteable(Class arg0, Type arg1, Annotation[] arg2,
MediaType arg3) {
// TODO Auto-generated method stub
return false;
}
@Override
public void writeTo(Object arg0, Class arg1, Type arg2, Annotation[] arg3,
MediaType arg4, MultivaluedMap arg5, OutputStream arg6)
throws IOException, WebApplicationException {
// TODO Auto-generated method stub
}
}
セッターメソッドを使用して値を設定できるので、なぜこれが起こっているのか誰にも教えてもらえますか?