我正在创建一个JAX-WS类型的Web服务,其操作返回一个对象WebServiceReply.WebServiceReply类本身包含Object类型的字段.根据操作,各个操作将使用几种不同的数据类型填充该字段.
发布WSDL(我正在使用Netbeans 6.7),并获得一个ASP.NET应用程序来检索和解析WSDL很好,但是当我尝试调用一个操作时,我会收到以下异常:
javax.xml.ws.WebServiceException: javax.xml.bind.MarshalException
- with linked exception:
[javax.xml.bind.JAXBException: class [LDataObject.Patient; nor any of its super class is known to this context.]
Run Code Online (Sandbox Code Playgroud)
如何在DataObject.Patient类中标记注释,以及WebServiceReply类以使其工作?我无法根据目标类中的注释来编组关于编组的权威资源,所以如果有人能够指出我也会很好.
@XmlRootElement(name="WebServiceReply")
public class WebServiceReply {
private Object returnedObject;
private String returnedType;
private String message;
private String errorMessage;
.......... // Getters and setters follow
}
Run Code Online (Sandbox Code Playgroud)
@XmlRootElement(name="Patient")
public class Patient {
private int uid;
private Date versionDateTime;
private String name;
private String identityNumber;
private List<Address> addressList;
private List<ContactNumber> contactNumberList;
private List<Appointment> appointmentList;
private List<Case> caseList;
} …Run Code Online (Sandbox Code Playgroud) 我有一个脚本,通过Ajax调用从远程服务器检索对象.服务器以JSON表示法返回对象.
但是,在Adobe AIR中,出于安全原因,使用eval()存在限制.所以我能够从远程服务器获得回复,但不能将它们变回JavaScript对象.这个问题有解决方法吗?我想将JSON用于我的JavaScript对象,因为它几乎可以立即使用.
旁注:我确实理解强制问题的安全隐患,但我会为竞争做一些快速的应用程序开发,因此该程序只是一个快速的原型,而不是用于生产目的.尽管如此,如果有一个比我现在想要做的更好的替代方案,那将会很棒
更新:
我今天学到的一件重要事情是,我实际上可以通过使用它来使用ActionScript库
<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>由Adobe AIR扩展的标记.查看Theo的链接了解更多详情!
我有一个Web服务,在调用时,返回一个多态包含List的Result对象.但是,当我在客户端应用程序中添加引用时,公共字段将成为客户端应用程序中的Country数组.如何将客户端应用程序中的字段更改为List?
public Result GetCountryList()
{
List<Country> countries = GrabCountryList();
Result result = new Result();
result.theResult = countries;
}
Run Code Online (Sandbox Code Playgroud)
这是公共财产
public object theResult
{
get {return _theResult; }
set {_theResult = value;}
}
Run Code Online (Sandbox Code Playgroud)
右键单击服务引用,然后选择"配置引用".在Collection type下,选择System.Collection.Generic.List.更新服务参考,应该是好的.
感谢Matt Hamilton提出的从阵列创建新列表的建议.