Java Web服务接受对象数组

Java Web服务接受对象数组,java,web-services,oracle-adf,Java,Web Services,Oracle Adf,我是JDev和ADF的新手,我们需要构建一个能够接收对象数组的web服务。基本上有一个点网服务,它将从exchange服务器读取电子邮件帐户,并通过使用我们的web服务发送所有读取的电子邮件。因此,dotnet程序可以从帐户发送多封电子邮件并发送到我们的web服务。到目前为止,我们已经创建了web服务,它接受如下参数 @WebMethod public String createHdaFile(@WebParam(name = "sender") String sender, @WebParam

我是JDev和ADF的新手,我们需要构建一个能够接收对象数组的web服务。基本上有一个点网服务,它将从exchange服务器读取电子邮件帐户,并通过使用我们的web服务发送所有读取的电子邮件。因此,dotnet程序可以从帐户发送多封电子邮件并发送到我们的web服务。到目前为止,我们已经创建了web服务,它接受如下参数

@WebMethod
public String createHdaFile(@WebParam(name = "sender") String sender,
@WebParam(name = "primaryRecipient") String primaryRecipitant,
@WebParam(name = "secondaryRecipient") String secondaryRecipitant,
@WebParam(name = "subject") String subject,
@WebParam(name = "messageBody") String messageBody,
@WebParam(name = "attachmentName") String attachmentName
){
code ...
}

想知道我们是否有一种方法可以接受对象数组,它可以一次性接收所有电子邮件。

如果您可以访问.Net代码,可以考虑XML格式的信息吗?那么,将多个具有相同标记的元素添加到XML文档中就没有问题了。我在.Net和WS之间制作了一些类似的东西(XML消息),它可以正常工作。如果您需要一些代码来执行此操作,请询问我。

如果您可以访问.Net代码,请考虑XML格式的信息?那么,将多个具有相同标记的元素添加到XML文档中就没有问题了。我在.Net和WS之间制作了一些类似的东西(XML消息),它可以正常工作。如果您需要一些代码来执行此操作,请询问我。

好的。首先,您应该为xml模式生成XSD文件,这对于从xml生成类很有用。这就是为您准备的example.xsd文件

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="message" type="message"/>
    <xs:complexType name="message">
        <xs:sequence>
            <xs:element name="attachmentName" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="messageBody" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="primaryRecipient" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="secodaryRecipient" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="subject" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="root" type="root"/>
    <xs:complexType name="root">
        <xs:sequence>
            <xs:element name="message" type="message" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
二,。在java端

        byte[] requestByte;

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

        Root finalizationParameters = (Root) 
                jaxbUnmarshaller.unmarshal(new ByteArrayInputStream(requestByte));

我希望这会有帮助。

好的。首先,您应该为xml模式生成XSD文件,这对于从xml生成类很有用。这就是为您准备的example.xsd文件

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="message" type="message"/>
    <xs:complexType name="message">
        <xs:sequence>
            <xs:element name="attachmentName" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="messageBody" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="primaryRecipient" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="secodaryRecipient" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="subject" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="root" type="root"/>
    <xs:complexType name="root">
        <xs:sequence>
            <xs:element name="message" type="message" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
二,。在java端

        byte[] requestByte;

        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();

        Root finalizationParameters = (Root) 
                jaxbUnmarshaller.unmarshal(new ByteArrayInputStream(requestByte));
我希望这会有帮助