小编pkc*_*iss的帖子

在JAX-WS中编组多态对象

我正在创建一个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类以使其工作?我无法根据目标类中的注释来编组关于编组的权威资源,所以如果有人能够指出我也会很好.

WebServiceReply.java

@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)

DataObject.Patient.java

@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)

java web-services jax-ws jaxb

12
推荐指数
1
解决办法
6727
查看次数

Adobe AIR:从服务器处理JSON对象

我有一个脚本,通过Ajax调用从远程服务器检索对象.服务器以JSON表示法返回对象.

但是,在Adobe AIR中,出于安全原因,使用eval()存在限制.所以我能够从远程服务器获得回复,但不能将它们变回JavaScript对象.这个问题有解决方法吗?我想将JSON用于我的JavaScript对象,因为它几乎可以立即使用.

旁注:我确实理解强制问题的安全隐患,但我会为竞争做一些快速的应用程序开发,因此该程序只是一个快速的原型,而不是用于生产目的.尽管如此,如果有一个比我现在想要做的更好的替代方案,那将会很棒


更新:

感谢Theojsight的回答;

我今天学到的一件重要事情是,我实际上可以通过使用它来使用ActionScript库

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
由Adobe AIR扩展的标记.查看Theo的链接了解更多详情!

javascript air ajax json

6
推荐指数
1
解决办法
4789
查看次数

列表<Country>跨Web服务变为Country []

我有一个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)


接受 Mehmet Aras的回答:

右键单击服务引用,然后选择"配置引用".在Collection type下,选择System.Collection.Generic.List.更新服务参考,应该是好的.

感谢Matt Hamilton提出的从阵列创建新列表的建议.

.net c# web-services

3
推荐指数
2
解决办法
1616
查看次数

标签 统计

web-services ×2

.net ×1

air ×1

ajax ×1

c# ×1

java ×1

javascript ×1

jax-ws ×1

jaxb ×1

json ×1