AEM :: Ecriture du flux de sortie dans l'objet de réponse

user972418

Je travaille sur une exigence d'afficher un document PDF sur la page. Ce document est extrait d'un service principal sous la forme d'un tableau d'octets. Je convertis ce tableau d'octets en flux de sortie, puis je l'écris dans la réponse dans un servlet Sling. Le servlet obtient le tableau d'octets d'un service OSGi. Je me demande s'il est possible pour moi d'utiliser un modèle Sling au lieu d'un Sling Servlet. Le modèle Sling appellerait le service OSGi pour obtenir le tableau d'octets, mais je ne suis pas sûr des étapes suivantes. J'ai injecté l'objet de réponse dans Sling Model en utilisant

@SlingObject
private SlingHttpServletResponse response;

Mais ça ne fera pas l'affaire. Toute orientation serait utile.

Merci d'avance

Jens

Avertissement

Sans connaître vos besoins spécifiques, je recommanderais d'utiliser un servlet au lieu d'utiliser un modèle Sling. Un modèle Sling est censé être une représentation d'une ressource JCR dans le référentiel pour ne pas être utilisé comme servlet.


Un modèle Sling a un «cycle de vie» différent d'un servlet. Alors qu'un servlet est instancié en tant que service / composant OSGi (qui est un singleton dans la plupart des cas), un modèle Sling peut être instancié plusieurs fois au cours d'une seule demande. Soyez donc conscient de cette différence et des conséquences.

Cela dit, vous avez deux options pour écrire le PDF dans la réponse avec un modèle Sling:

  1. Lors de l'initialisation du modèle Sling
  2. Lorsqu'une méthode spécifique est appelée

Exemple pour 1:

@Model(adaptables = SlingHttpServletRequest.class)
public class MyModel {

    @SlingObject
    private SlingHttpServletResponse response;

    @OSGiService
    private PDFService pdfService;

    @PostConstruct
    public void init() {
        response.setContentType("application/pdf");

        [... code to write PDF to response ...]
    }
}

La méthode annotée avec @PostConstructest appelée après l'injection de tous les champs annotés, afin que vous puissiez exécuter votre code d'initialisation.

Exemple pour 2:

@Model(adaptables = SlingHttpServletRequest.class)
public class MyModel {

    @SlingObject
    private SlingHttpServletResponse response;

    @OSGiService
    private PDFService pdfService;

    public void writePDFtoResponse() {
        response.setContentType("application/pdf");

        [... code to write PDF to response ...]
    }
}

De toute évidence, avec le deuxième exemple, vous devrez avoir une sorte de code qui instancie le modèle et les appels writePDFtoResponse().

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Réponse longueur du contenu du flux de sortie?

Créer un objet Image magick à partir du flux de réponse dans go lang

Accédez à la référence d'objet du premier flux à l'API de flux suivant dans Java 8

Réinitialisation du flux de sortie standard

comment définir l'ordre de l'objet du tableau comme la réponse dans Android?

Impossible d'obtenir le résultat du futur complétable dans l'objet de réponse

Erreur au milieu de l'écriture dans la gestion du flux de sortie

Sérialiser l'objet avec le flux de sortie

Obtenir l'objet de réponse d'action vuex dans le contexte du composant

Comment obtenir l'objet File à partir du corps de la réponse dans OkHttp?

Ecriture de la fonction if / ifelse dans R

Ecriture de la boucle If dans R

Renvoyer la sortie du journal et l'objet de résultat de l'applet de commande

Docker - Ecriture de la sortie python dans un fichier csv dans le répertoire de travail actuel

Impossible de récupérer la réponse du tableau à partir de l'objet json dans le script dactylographié

Comment lire et copier le contenu du flux de sortie de la réponse du servlet HTTP pour la journalisation

Aucune méthode dans l'objet de réponse http

Filtrer l'objet de réponse dans Angular

Modification du chemin de sortie du fichier objet dans makefile

Utilisation du type de modèle Java-generics dans l'objet de réponse RESTful via GenericEntity <List <T>>

jQuery lors de la sortie de l'objet de promesse plutôt que du résultat

Définir l'état du flux pour communiquer l'erreur dans l'opérateur de sortie formaté (opérateur<<)

L'objet de réponse ne s'affiche pas correctement dans la fonction de réponse

Comment appeler une fonction à l'intérieur du flux de l'objet de carte de hachage et accumuler la somme en fonction de la sortie de la méthode appelée à l'intérieur du flux

Comparez les éléments dans la liste de tableaux de l'objet à l'aide du flux Java

Obtention de [objet objet] lors du mappage de la réponse http dans Angular 2

comment ajouter le résultat de la relation de flux de sortie du processeur executestreamcommand dans le fichier de flux d'origine dans nifi

NuGet sous Linux: erreur lors de l'obtention du flux de réponse

AEM - Flux de travail personnalisé avec validation du contenu de l'auteur?

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Exporter la table de l'arborescence vers CSV avec mise en forme

  3. 3

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  4. 4

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  9. 9

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  10. 10

    php ajouter et fusionner des données de deux tables

  11. 11

    Créer un système Buzzer à l'aide de python

  12. 12

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  13. 13

    Comment changer la couleur de la police dans R?

  14. 14

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  15. 15

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    comment afficher un bouton au-dessus d'un autre élément ?

  18. 18

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  19. 19

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  20. 20

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  21. 21

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

chaudétiquette

Archive