2017-10-09 3 views
0

C'est la première fois que je déploie AWS Lambda et je suis un peu bloqué.AWS Lambda ne trouve pas de bibliothèque dépendante

J'ai un grand projet maven appelé Helpers qui a de nombreux sous-modules, dont beaucoup dépendent l'un de l'autre. Là, j'ai un assistant appelé Alerts. J'ai un répertoire parent et tout construit et compile avec succès. Donc, c'est bon.

Alertes il y a une classe appelée PaymentAlerts qui a la ligne

import com.mywebsite.messages.Doers

où messages.Doers se trouve dans les dépendances.

Mais, quand je fais un mvn package sur l'ensemble du projet et je trouve alerts-1.0.jar et de le transférer à AWS Lambda et je mets mon gestionnaire comme com.mywebsite.alerts.PaymentAlerts::doAlert je reçois l'erreur suivante:

{

com.mywebsite.alerts.PaymentAlerts: com/mywebsite/messaging/Doers",

"errorType": "java.lang.NoClassDefFoundError"

"errorMessage": "Error loading class }

Comment puis-je reconfigurer afin qu'il trouve tous les fichiers nécessaires?

Toute aide est appréciée!

Répondre

1

AWS Lambda can't find dependent library

Sauf mvn, vous pouvez faire avec la dépendance simple bibliothèque en mettant tous les pots dans un, où votre fichier MANIFESTE contient comme Class-Path: libs/xyz.jar libs/abc.jar .. .

l'espoir, ce processus peut résoudre votre « errorType »: « java.lang.NoClassDefFoundError »

+0

Il s'avère qu'au lieu de le faire manuellement si vous utilisez le 'maven-shade-plugin' tout est fait pour vous et vous n'avez pas à vous en préoccuper. Au moins, cela a fonctionné pour moi. Merci! – LivingRobot

+0

Si ça marche, alors pourquoi postez-vous cette question stupide sur le débordement de la pile !! –

+0

Cela n'a pas fonctionné. Mais, après avoir regardé ta réponse et que tu as fait des recherches, j'ai trouvé la réponse. Désolé pour tous les problèmes. – LivingRobot

0

de here j'ai pu découvrir maven-plugin-ombre qui a cogné tout bien ensemble et a résolu le problème.