小编Hle*_*leb的帖子

使用具有已定义名称的XStream存储List <String>

我想将一些类存储到xml:

    XStream xstream = new XStream(new DomDriver());

    List<String> modules = new ArrayList<String>();
    modules.add("mod1");
    modules.add("mod2");
    ModulesConfig modulesConfig = new ModulesConfig(modules);

xstream.processAnnotations(ModulesConfig.class);
log.info(xstream.toXML(modulesConfig));
Run Code Online (Sandbox Code Playgroud)

类ModulesConfig:

@XStreamAlias("modules-config")
public class ModulesConfig {

    @XStreamAlias("moduleName")
    private List<String> moduleNames;

    public ModulesConfig(List<String> moduleNames) {
        this.moduleNames = moduleNames;
    }

    public List<String> getModuleNames() {
        return moduleNames;
    }

    public void setModuleNames(List<String> moduleNames) {
        this.moduleNames = moduleNames;
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

<modules-config>
  <moduleName>
    <string>mod1</string>
    <string>mod2</string>
  </moduleName>
</modules-config>
Run Code Online (Sandbox Code Playgroud)

但我希望元素被命名为"moduleName".如何配置xstream或我必须添加到类的注释?我想要这样的结果:

<modules-config>
  <moduleNames>
    <moduleName>mod1</moduleName>
    <moduleName>mod2</moduleName>
  </moduleNames>
</modules-config>
Run Code Online (Sandbox Code Playgroud)

java xstream

8
推荐指数
1
解决办法
5415
查看次数

无法使用javax.mail从谷歌收集电子邮件中的草稿,垃圾邮件和垃圾箱文件夹

我想从gmail的所有文件夹中收到电子邮件.从收件箱,已发送和其他文件夹我成功收到电子邮件.但是当我尝试从草稿,垃圾邮件和垃圾邮件中获取它时,我得到一个例外:

09:51:45,622 ERROR MailRetriever.[main]getNoFlaggedMails:142 - Can't get messages: javax.mail.MessagingException: connection failure
javax.mail.MessagingException: connection failure
at com.sun.mail.imap.IMAPStore.getProtocol(IMAPStore.java:742)
at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:910)
at ua.com.stormlabs.gap.gmail.MailRetriever.getNoFlaggedMails(MailRetriever.java:133)
at ua.com.stormlabs.gap.gmail.GMailServiceProcessor.processFolder(GMailServiceProcessor.java:95)
at ua.com.stormlabs.gap.gmail.GMailServiceProcessor.start(GMailServiceProcessor.java:80)
at ua.com.stormlabs.gap.gmail.GMailGapApp.main(GMailGapApp.java:21)
Run Code Online (Sandbox Code Playgroud)

这是用于检索邮件的代码:

Folder folder = imapSslStore.getFolder(folderName);
folder.open(Folder.READ_WRITE);
openedFolders.put(folderName, folder);

Flags searchFlags = new Flags(Flags.Flag.USER);
searchFlags.add(FLAG_PREFIX + READ_BY_GAP_FLAG);
Message[] messages = folder.search(new FlagTerm(searchFlags, false));
log.debug("Messages list retrieved: " + messages.length);
return messages;
Run Code Online (Sandbox Code Playgroud)

文件夹名称我尝试打开失败:

[Gmail]/Drafts
[Gmail]/Spam
[Gmail]/Trash
Run Code Online (Sandbox Code Playgroud)

java gmail imap javax.mail

2
推荐指数
1
解决办法
5727
查看次数

标签 统计

java ×2

gmail ×1

imap ×1

javax.mail ×1

xstream ×1