Java JIRA REST客户端:can';不要发送附件

Java JIRA REST客户端:can';不要发送附件,java,maven,jira,jira-rest-java-api,jira-rest-api,Java,Maven,Jira,Jira Rest Java Api,Jira Rest Api,问题:通过jira rest客户端向jira发送附件时出现异常(见下面的stacktrace) 重要 通过Jira在本地主机上启动应用程序时效果良好 它在环境中不起作用,或者如果通过mvncleanpackage命令创建一个jar,然后通过'java-jar.jar'命令启动,它就不起作用了 问题:原因是什么?我应该试试什么 代码: public static void handleProfileAttachments(Profile profile, JiraRestClient restCl

问题:通过jira rest客户端向jira发送附件时出现异常(见下面的stacktrace)

重要

  • 通过Jira在本地主机上启动应用程序时效果良好
  • 它在环境中不起作用,或者如果通过
    mvncleanpackage
    命令创建一个jar,然后通过'java-jar.jar'命令启动,它就不起作用了 问题:原因是什么?我应该试试什么

    代码:

    public static void handleProfileAttachments(Profile profile, JiraRestClient restClient, BasicIssue issue, ProgressMonitor pm) {
        List<FileInfo> attachments = profile.getFiles();
        if (attachments != null && !attachments.isEmpty()) {
            addAttachmentToIssue(restClient, issue.getKey(), attachments, pm);
        }
    }
    
    private static void addAttachmentToIssue(JiraRestClient restClient, String issueKey, List<FileInfo> attachments, ProgressMonitor pm) {
        FileInfo attachment = attachments.get(attachments.size() - 1);
        restClient.getIssueClient().addAttachment(pm, getIssue(restClient, issueKey, pm).getAttachmentsUri(),
                new ByteArrayInputStream(attachment.getFileContent().getContent()), attachment.getFileName() + "." + attachment.getFileExtension());
    }
    
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
            <version>1.18.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-multipart</artifactId>
            <version>1.18.1</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-rest-java-client</artifactId>
            <version>1.1-m02</version>
        </dependency>
    
    publicstaticvoid handleProfileAttachments(配置文件配置文件、JiraRestClient restClient、BasicIssue问题、ProgressMonitor pm){
    列表附件=profile.getFiles();
    if(attachments!=null&&!attachments.isEmpty()){
    addAttachmentToIssue(restClient,issue.getKey(),attachments,pm);
    }
    }
    私有静态void addAttachmentToIssue(JiraRestClient restClient、字符串issueKey、列表附件、ProgressMonitor pm){
    FileInfo attachment=attachments.get(attachments.size()-1);
    restClient.getIssueClient().addAttachment(pm,getIssue(restClient,issueKey,pm)。getAttachmentsUri(),
    新的ByteArrayInputStream(attachment.getFileContent().getContent()),attachment.getFileName()+““+”attachment.getFileExtension());
    }
    
    依赖关系:

    public static void handleProfileAttachments(Profile profile, JiraRestClient restClient, BasicIssue issue, ProgressMonitor pm) {
        List<FileInfo> attachments = profile.getFiles();
        if (attachments != null && !attachments.isEmpty()) {
            addAttachmentToIssue(restClient, issue.getKey(), attachments, pm);
        }
    }
    
    private static void addAttachmentToIssue(JiraRestClient restClient, String issueKey, List<FileInfo> attachments, ProgressMonitor pm) {
        FileInfo attachment = attachments.get(attachments.size() - 1);
        restClient.getIssueClient().addAttachment(pm, getIssue(restClient, issueKey, pm).getAttachmentsUri(),
                new ByteArrayInputStream(attachment.getFileContent().getContent()), attachment.getFileName() + "." + attachment.getFileExtension());
    }
    
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-json</artifactId>
            <version>1.18.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-multipart</artifactId>
            <version>1.18.1</version>
        </dependency>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
                <artifactId>jira-rest-java-client</artifactId>
            <version>1.1-m02</version>
        </dependency>
    
    
    泽西岛
    泽西json
    1.18.1
    com.sun.jersey.contribs
    泽西多部分
    1.18.1
    com.atlassian.jira
    jira rest java客户端
    1.1-m02
    
    Stacktrace

    com.atlassian.jira.rest.client.RestClientException: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java class com.sun.jersey.multipart.MultiPart, and Java type class com.sun.jersey.multipart.MultiPart, and MIME media type multipart/f
    orm-data; boundary=Boundary_2_61827_1394804460392 was not found
            at com.atlassian.jira.rest.client.internal.jersey.AbstractJerseyRestClient.invoke(AbstractJerseyRestClient.java:75)
            at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.addAttachments(JerseyIssueRestClient.java:345)
            at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.addAttachment(JerseyIssueRestClient.java:338)
            at com.levi9.levirs.jiraexport.JiraExportService.addAttachmentToIssue(JiraExportService.java:140)
            at com.levi9.levirs.jiraexport.JiraExportService.handleProfileAttachments(JiraExportService.java:227)
            at com.levi9.levirs.jiraexport.JiraExportService.updateIssueAttachment(JiraExportService.java:221)
            at com.levi9.levirs.communication.file.FileRequestHandler$Update.saveSession(FileRequestHandler.java:112)
            at com.levi9.levirs.communication.file.FileRequestHandler$Update.handle(FileRequestHandler.java:88)
            at com.levi9.levirs.core.Peer.onWebSocketText(Peer.java:33)
            at org.eclipse.jetty.websocket.common.events.ListenerEventDriver.onTextMessage(ListenerEventDriver.java:127)
            at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
            at org.eclipse.jetty.websocket.common.events.ListenerEventDriver.onTextFrame(ListenerEventDriver.java:119)
            at org.eclipse.jetty.websocket.common.events.EventDriver.incomingFrame(EventDriver.java:127)
            at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:309)
            at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:203)
            at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:200)
            at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:237)
            at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.read(AbstractWebSocketConnection.java:551)
            at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
            at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358)
            at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596)
            at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527)
            at java.lang.Thread.run(Unknown Source)
    Caused by: com.sun.jersey.api.client.ClientHandlerException: A message body writer for Java class com.sun.jersey.multipart.MultiPart, and Java type class com.sun.jersey.multipart.MultiPart, and MIME media type multipart/form-data; boundary=Boundary_2_61827_13948
    04460392 was not found
            at com.sun.jersey.api.client.RequestWriter$RequestEntityWriterImpl.<init>(RequestWriter.java:198)
            at com.sun.jersey.api.client.RequestWriter.getRequestEntityWriter(RequestWriter.java:259)
            at com.sun.jersey.client.apache.DefaultApacheHttpMethodExecutor.executeMethod(DefaultApacheHttpMethodExecutor.java:121)
            at com.sun.jersey.client.apache.ApacheHttpClientHandler.handle(ApacheHttpClientHandler.java:175)
            at com.sun.jersey.api.client.Client.handle(Client.java:629)
            at com.sun.jersey.api.client.WebResource.voidHandle(WebResource.java:625)
            at com.sun.jersey.api.client.WebResource.access$400(WebResource.java:74)
            at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:495)
            at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.postFileMultiPart(JerseyIssueRestClient.java:413)
            at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.access$300(JerseyIssueRestClient.java:85)
            at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient$9.call(JerseyIssueRestClient.java:359)
            at com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient$9.call(JerseyIssueRestClient.java:345)
            at com.atlassian.jira.rest.client.internal.jersey.AbstractJerseyRestClient.invoke(AbstractJerseyRestClient.java:54)
            ... 22 more
    
    com.atlassian.jira.rest.client.RestClientException:com.sun.jersey.api.client.ClientHandlerException:Java类com.sun.jersey.multipart.multipart和Java类型类com.sun.jersey.multipart.multipart的消息体编写器和MIME媒体类型multipart/f
    orm数据;边界=未找到边界\u 2 \u 61827 \u 1394804460392
    位于com.atlassian.jira.rest.client.internal.jersey.AbstractJerseyRestClient.invoke(AbstractJerseyRestClient.java:75)
    位于com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.addAttachments(JerseyIssueRestClient.java:345)
    位于com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.addAttachment(JerseyIssueRestClient.java:338)
    在com.levi9.levis.jiraexport.JiraExportService.addAttachmentToIssue上(JiraExportService.java:140)
    位于com.levi9.levis.jiraexport.JiraExportService.handleProfileAttachments(JiraExportService.java:227)
    位于com.levi9.levis.jiraexport.JiraExportService.updateisueattachment(JiraExportService.java:221)
    位于com.levi9.levis.communication.file.FileRequestHandler$Update.saveSession(FileRequestHandler.java:112)
    在com.levi9.levis.communication.file.FileRequestHandler$Update.handle(FileRequestHandler.java:88)上
    在com.levi9.levis.core.Peer.onWebSocketText(Peer.java:33)
    位于org.eclipse.jetty.websocket.common.events.ListenerEventDriver.onTextMessage(ListenerEventDriver.java:127)
    位于org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
    位于org.eclipse.jetty.websocket.common.events.ListenerEventDriver.onTextFrame(ListenerEventDriver.java:119)
    位于org.eclipse.jetty.websocket.common.events.EventDriver.incomingFrame(EventDriver.java:127)
    位于org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:309)
    位于org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:203)
    位于org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:200)
    位于org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:237)
    位于org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.read(AbstractWebSocketConnection.java:551)
    位于org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:459)
    位于org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358)
    位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596)
    位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527)
    位于java.lang.Thread.run(未知源)
    原因:com.sun.jersey.api.client.clienthandler异常:Java类com.sun.jersey.multipart.multipart和Java类型类com.sun.jersey.multipart.multipart以及MIME媒体类型multipart/表单数据的消息体编写器;边界=边界\u 2 \u 61827 \u 13948
    找不到04460392
    位于com.sun.jersey.api.client.RequestWriter$RequestEntityWriterImpl.(RequestWriter.java:198)
    位于com.sun.jersey.api.client.RequestWriter.getRequestEntityWriter(RequestWriter.java:259)
    位于com.sun.jersey.client.apache.DefaultApacheHttpMethodexecuteMethod(DefaultApacheHttpMethodExecutor.java:121)
    位于com.sun.jersey.client.apache.ApacheHttpClientHandler.handle(ApacheHttpClientHandler.java:175)
    位于com.sun.jersey.api.client.client.handle(client.java:629)
    位于com.sun.jersey.api.client.WebResource.voidHandle(WebResource.java:625)
    com.sun.jersey.api.client.WebResource.access$400(WebResource.java:74)
    com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:495)
    位于com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.postFileMultiPart(JerseyIssueRestClient.java:413)
    在com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient.access$300(JerseyIssueRestClient.java:85)
    在com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient$9.call(JerseyIssueRestClient.java:359)
    在com.atlassian.jira.rest.client.internal.jersey.JerseyIssueRestClient$9.call(JerseyIssueRestClient.java:345)
    位于com.atlassian.jira.rest.client.internal.jersey.AbstractJerseyRestClient.invoke(AbstractJerseyRestClient.java:54)
    ... 还有22个