Jdeveloper - Web Service Metadata Annotation
Hej - Findes der en metadata annontation der fortæller oc4j at den fx. bare skal hoppe over en given metode i et objekt?Eller er der en anden måde der løser problemet?
Mit problem er setTableMap() og getTableMap (TableMap er ikke beskrevet i WSDL filen.) - hvis disse ikke bliver udkommenteret får jeg følgende fejl:
05/09/27 17:54:16 java.lang.IllegalArgumentException: No Serializer found to serialize a 'mypackage.Product' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.
05/09/27 17:54:16 at org.apache.soap.util.xml.XMLJavaMappingRegistry.querySerializer(XMLJavaMappingRegistry.java)
05/09/27 17:54:16 at org.apache.soap.encoding.soapenc.ParameterSerializer.marshall(ParameterSerializer.java:106)
05/09/27 17:54:16 at org.apache.soap.rpc.RPCMessage.marshall(RPCMessage.java:265)
05/09/27 17:54:16 at org.apache.soap.Body.marshall(Body.java:148)
05/09/27 17:54:16 at org.apache.soap.Envelope.marshall(Envelope.java:203)
05/09/27 17:54:16 at org.apache.soap.Envelope.marshall(Envelope.java:162)
05/09/27 17:54:16 at oracle.j2ee.ws.InvocationWrapper.invoke(InvocationWrapper.java:451)
05/09/27 17:54:16 at oracle.j2ee.ws.RpcWebService.doGetRequest(RpcWebService.java:642)
05/09/27 17:54:16 at oracle.j2ee.ws.BaseWebService.doGet(BaseWebService.java:1173)
05/09/27 17:54:16 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
05/09/27 17:54:16 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
05/09/27 17:54:16 at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
05/09/27 17:54:16 at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
05/09/27 17:54:16 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649)
05/09/27 17:54:16 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
05/09/27 17:54:16 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
05/09/27 17:54:16 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
05/09/27 17:54:16 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
05/09/27 17:54:16 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
05/09/27 17:54:16 at java.lang.Thread.run(Thread.java:534)
Kode:
public class DomainObject
{
protected TableMap tableMap;
public DomainObject()
{
}
/*
public void setTableMap(TableMap tableMap)
{
this.tableMap = tableMap;
}
*/
/*
public TableMap getTableMap()
{
return this.tableMap;
}
*/
}
public class Person extends DomainObject
{
private long id;
public Person()
{
tableMap = new TableMap("PERSON");
tableMap.addColumn("ID","LONG");
}
public void setID(long id)
{
this.id = id;
}
public long getID()
{
return this.id;
}
}
public class TableMap
{
private ArrayList columnMap;
private String tableName;
public TableMap(String tableName)
{
this.tableName = tableName;
columnMap = new ArrayList();
}
public ArrayList getColumnMap()
{
return this.columnMap;
}
public String getTableName()
{
return this.tableName;
}
public void addColumn(String columnName, String type)
{
columnMap.add(new Column(columnName,type));
}
}
public class Column
{
private String columnName;
private String type;
public Column(String columnName, String type)
{
this.columnName = columnName;
this.type = type;
}
public String getName()
{
return this.columnName;
}
public void setName(String columnName)
{
this.columnName = columnName;
}
public void getType()
{
return this.type;
}
public void setType(String type)
{
this.type = type;
}
}
public class WebService
{
public WebService()
{
}
/**
*
* @webmethod
*/
public Product getProducts()
{
Product p = new Product();
p.setName("Dolph");
return p;
}
}
