AnsweredAssumed Answered

POST Webscript Connector

Question asked by rowe on Feb 6, 2013
Latest reply on Feb 11, 2013 by rowe
Hi,

ich versuche derzeit von Share über das "remote"-Objekt Postdaten an ein Alfresco Webscript (Java Backed) zu schicken.

Das Backend Webscript ist in einer preset-site.post.desc.xml wie folgt deklariert:

<webscript>
    <shortname>Preset Site</shortname>
    <description></description>
    <url>/preset/site</url>
    <format default="json">argument</format>
    <authentication>user</authentication>
    <transaction>required</transaction>
</webscript>


Das Webscript ist Spring-Context vorhanden und soll zunächst nur die mitgelieferten POST Parameter ausgeben:

package de.mypackage

import org.springframework.extensions.webscripts.Cache;
import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptRequest;

import java.util.HashMap;
import java.util.Map;

public class PresetProgramWebscript extends DeclarativeWebScript {


    @Override
    protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) {
        for (String header : req.getHeaderNames()) {
            System.out.println("HEADER-Key: " + header);
            System.out.println("HEADER-Value: " + req.getHeader(header));
        }
        System.out.println("———————————-");
        for (String param : req.getParameterNames()) {
            System.out.println("PARAM-KEY: " + param);
            System.out.println("PARAM-Value: " + req.getParameter(param));
        }
        System.out.println("———————————-");
        System.out.println("———————————-");


        return new HashMap<String, Object>();
    }
}


Wenn das Webscript mit seiner URL und CURL aufgerufen wird, können mitgegebene POST-Parameter aufgelesen werden und werden wie erwartet dargestellt.

Wird das Script jedoch von einem Share Webscript mit remote aufgerufen:

var connector = remote.connect(endpoint);
connector.post("/preset/site", myData);


so erscheint in der Parameterausgabe lediglich ein Parameter "ALF_TICKET". Der Inhalt von myData (ist ein JSONString) fehlt komplett.
Hat jemand eine Idee was schief läuft? Stimmt die Authentifikation nicht?


Ergänzend:
Kurios finde ich auch, lege ich parallel zum Java Webscript im Backend noch ein JS-Webscript wird dieses ebenfalls aufgeführt (nach dem Java Webscript) und ich kann in diesem
die daten von "myData" auslesen.

Outcomes