|
This post was updated on .
Hi.
I have the following situation: I have a form somewhere to register new user with an attachment. It consumes my webservice to perform this action. User registration is not a problem, but uploading attachment is. Let me present a piece of code:
String fileBase64String = (String) context.get("attachmentFile");
ByteBuffer fileBytes = ByteBuffer.wrap(Base64.decodeBase64(fileBase64String));
Map uploadServiceContext = UtilMisc.toMap("dataCategoryId", "PERSONAL",
"contentTypeId", "DOCUMENT", "statusId", "CTNT_PUBLISHED",
"isPublic", "Y", "partyContentTypeId", "INTERNAL", "partyId",
partyId);
uploadServiceContext.put("uploadedFile", fileBytes);
uploadServiceContext.put("userLogin", context.get("userLogin"));
try {
dispatcher.runSync("uploadPartyContentFile", uploadServiceContext);
} catch (GenericServiceException e) {
log.error(e.getMessage(), e);
return ServiceUtil.returnError("Saving attachment failed.");
}
return ServiceUtil.returnSuccess();
As you can see, I am trying to use built-in service method called "uploadPartyContentFile". The "attachmentFile" parameter is an input string parameter containing a Base64 encoded file transferred from web service consumer. Unfortunately, my solution does not work. Here is the error I get:
2013-05-17 13:38:13,836 (http-0.0.0.0-18080-1) [ UtilProperties.java:1056:INFO ] ResourceBundle EntityEngineUiLabels (pl) created in 0.027s with 4 properties
2013-05-17 13:38:13,837 (http-0.0.0.0-18080-1) [ ServiceDispatcher.java:546:ERROR]
---- exception report ----------------------------------------------------------
Could not commit transaction for service [registerExternalMeetingParticipant] call
Exception: org.ofbiz.entity.transaction.GenericTransactionException
Message: Zatwierdzenie transakcji zostało anulowane z powodu błedu:Error in simple-method [Attach an uploaded file to a data resource as LOCAL_FILE [file:/C:/ofbiz/applications/content/script/org/ofbiz/content/data/DataServices.xml#saveLocalFileDataResource]]: ; {No uploaded content found in context}
---- stack trace ---------------------------------------------------------------
org.ofbiz.entity.transaction.GenericTransactionException: Zatwierdzenie transakcji zostało anulowane z powodu błedu:Error in simple-method [Attach an uploaded file to a data resource as LOCAL_FILE [file:/C:/ofbiz/applications/content/script/org/ofbiz/content/data/DataServices.xml#saveLocalFileDataResource]]: ; {No uploaded content found in context}
org.ofbiz.entity.transaction.TransactionUtil.commit(TransactionUtil.java:288)
org.ofbiz.entity.transaction.TransactionUtil.commit(TransactionUtil.java:252)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:543)
org.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:224)
org.ofbiz.service.GenericDispatcher.runSync(GenericDispatcher.java:163)
org.ofbiz.webapp.event.SOAPEventHandler.invoke(SOAPEventHandler.java:193)
org.ofbiz.webapp.control.RequestHandler.runEvent(RequestHandler.java:648)
org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:394)
org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224)
org.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:87)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:339)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:662)
--------------------------------------------------------------------------------
2013-05-17 13:38:14,231 (http-0.0.0.0-18080-1) [ RequestHandler.java:649:INFO ] Ran Event [soap:#] from [request], result is [null]
2013-05-17 13:38:14,244 (http-0.0.0.0-18080-1) [ ServerHitBin.java:627:INFO ] Visit delegatorName=default, ServerHitBin delegatorName=default
2013-05-17 13:38:14,254 (http-0.0.0.0-18080-1) [ ControlServlet.java:324:INFO ] [[[SOAPService] Request Done- total:1.254,since last([SOAPService] Req...):1.254]]
Do you, guys, have any idea what I am doing wrong and how to fix it? Thanks for the interest in advance. |
| Free forum by Nabble | Edit this page |
