cancel
Showing results for 
Search instead for 
Did you mean: 

write() method from ContentService throughing error

skorde
Champ in-the-making
Champ in-the-making
Hi
I am using Alfresco Community 2.1.I have written my sample java class for uploading the content via alfresco web service
Right now I just uploading plain doc  file But when the application call following method
Content contentRef = contentService.write(content, Constants.PROP_CONTENT, contentBytes, format);
,contetn get uploaded in Alfresco repo but it throughing following error

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString:
faultActor:
faultNode:
faultDetail:
   {http://www.alfresco.org/ws/service/content/1.0}ContentFault:<ns1:errorCode>0</ns1:errorCode><ns1:message>Not implemented</ns1:message>
   {http://xml.apache.org/axis/}exceptionName:org.alfresco.repo.webservice.content.ContentFault
   {http://xml.apache.org/axis/}stackTrace:
   at org.alfresco.repo.webservice.content.ContentWebService.write(ContentWebService.java:254)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
   at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
   at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
   at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
   at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
   at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
   at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
   at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
   at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
   at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
   at java.lang.Thread.run(Thread.java:619)

   {http://xml.apache.org/axis/}hostname:CRISILDSK1039


   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
   at java.lang.Class.newInstance0(Class.java:350)
   at java.lang.Class.newInstance(Class.java:303)
   at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:104)
   at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90)
   at org.alfresco.webservice.content.ContentFault.getDeserializer(ContentFault.java:146)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)
   at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)
   at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)
   at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)
   at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
   at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
   at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
   at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
   at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
   at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
   at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
   at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
   at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
   at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
   at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
   at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
   at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
   at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
   at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
   at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
   at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
   at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
   at org.apache.axis.client.Call.invoke(Call.java:2767)
   at org.apache.axis.client.Call.invoke(Call.java:2443)
   at org.apache.axis.client.Call.invoke(Call.java:2366)
   at org.apache.axis.client.Call.invoke(Call.java:1812)
   at org.alfresco.webservice.content.ContentServiceSoapBindingStub.write(ContentServiceSoapBindingStub.java:467)
   at org.alfresco.khub.webservice.WebContentService.createNewContent(WebContentService.java:72)
   at org.alfresco.sample.WebServiceClient.main(WebServiceClient.java:68)

5 REPLIES 5

openpj
Elite Collaborator
Elite Collaborator
Can you share with us the source code of your application that implement Alfresco Web Service Client call?

skorde
Champ in-the-making
Champ in-the-making
Hi
I have written the following plane java class for uploading the content into Alfresco repo.

             /**
    * Main function
    */
   public static void main(String[] args) {
      Content content =null;
      try {
         // Start the session
         AuthenticationUtils.startSession(USERNAME, PASSWORD);

         File file = new File("D:/Solutions and Web Services.doc");
         String fileName = file.getName();
         // Open the file and convert to byte
         InputStream is = new FileInputStream(file);
         byte[] contentBytes = ContentUtils.convertToByteArray(is);
         String contentFormat = MimetypeMap.MIMETYPE_TEXT_PLAIN;
         if (file.getName().contains(".doc")) {
            contentFormat = MimetypeMap.MIMETYPE_WORD;
         } else {
            contentFormat = MimetypeMap.MIMETYPE_EXCEL;
         }
         WebContentService webContentService = new WebContentService();
         content = webContentService.createNewContent(fileName, contentBytes, contentFormat);
         System.out.println("Content URL:-"+content.getUrl());
      } catch (ContentFault e) {
         System.out.println("Content Fault" + e.getMessage1());
      } catch (RepositoryFault e) {
         System.out.println("RepositoryFault" + e.getMessage1());
      } catch (RemoteException e) {
         e.printStackTrace();
      } catch (Exception e) {
         e.printStackTrace();
      } finally {
         // End the session
         AuthenticationUtils.endSession();
      }
   }

And following is the my service class method for uploading or writting the content


public Content createNewContent(String name,byte[] contentBytes, String contentFormat) throws Exception {
      //Get the content service
      ContentServiceSoapBindingStub contentService = WebServiceFactory.getContentService();
      
      // Create a parent reference, this contains information about the
      // association we are createing to the new content and the
      // parent of the new content (the space retrived from the search)
      ParentReference parentReference = new ParentReference(STORE, null, "/app:company_home/cm:sample_folder",
            ASSOC_CONTAINS, ASSOC_CONTAINS);

      // Define the content format for the content we are adding
      ContentFormat format = new ContentFormat(contentFormat, "UTF-8");
      
      NamedValue[] properties = new NamedValue[] { Utils.createNamedValue(Constants.PROP_NAME, System.currentTimeMillis()+name) };
      CMLCreate create = new CMLCreate("1", parentReference, null, null, null, Constants.TYPE_CONTENT, properties);
      CML cml = new CML();
      cml.setCreate(new CMLCreate[] { create });
      UpdateResult[] result = WebServiceFactory.getRepositoryService().update(cml);

      Reference newContentNode = result[0].getDestination();
      Content content = contentService.write(newContentNode, Constants.PROP_CONTENT, contentBytes, format);
         // Get a reference to the newly created content
      return content;
   }

openpj
Elite Collaborator
Elite Collaborator
You can try to change contentBytes and contentFormat in this way (example with pdf file format):

private static final String CONTENT_TYPE = "application/pdf";
private static final String CONTENT_FORMAT = "UTF-8";
…..
…..
byte[] contentBytes = new byte[(int)length];
ContentFormat format = new ContentFormat(CONTENT_TYPE, CONTENT_FORMAT);
WebServiceFactory.getContentService().write(results[0].getDestination(), Constants.PROP_CONTENT, contentBytes, contentFormat);
Hope this helps.

skorde
Champ in-the-making
Champ in-the-making
Hi OpenPj
This is not working, I am getting the same exception.Is it  bug in Alfresco web services.
appreciate your help!

skorde
Champ in-the-making
Champ in-the-making
any update on this issue