2017-09-11 9 views
0

J'ai passé 2 jours à essayer d'obtenir mon projet mvn pour exécuter mon fichier war avec javaagent. Laissez-moi expliquer dans les détails.passer mon javaagent à tomcat-maven-plugin NON serveur Tomcat

Pour exécuter un fichier jar normal avec un javaagent aurait besoin de faire ce qui suit:

java -javaagent:path/to/the/agent -jar /path/to/your/jar 

maintenant j'ai une application web que j'exécution à l'aide de la commande suivante:

mvn tomcat7:run-war 

J'ai lu que si c'est un serveur Tomcat normal, alors je voudrais modifier le fichier catalina.sh et ajouter $JAVE_OPTS="-javaagent:path/to/the/agent"

C'est au cas où je suis runn ma guerre avec mon serveur Tomcat. Mais ce n'est pas le cas. Je courais la guerre en utilisant tomcat-maven-plugin et j'ai passé d'innombrables heures à essayer de le faire fonctionner quelque chose comme ce qui suit:

mvn -javaagent:path/to/my/agent tomcat7:run-war 

Voici mon projet guerre pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>war</packaging> 


<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<groupId>MonitoringService</groupId> 
<artifactId>MonitoringService</artifactId> 

<repositories> 
    <repository> 
     <id>commons-mvn-repo</id> 
     <url>https://raw.github.com/mostafaelganainy/socialhub-commons/mvn-repo/</url> 
     <snapshots> 
      <enabled>true</enabled> 
      <updatePolicy>always</updatePolicy> 
     </snapshots> 
    </repository> 
</repositories> 

<dependencies> 

    <dependency> 
      <groupId>com.smartera.monitor</groupId> 
      <artifactId>jobsHandler-servlet-api</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
    </dependency> 

    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>2.12.3</version> 
    </dependency> 


    <dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20090211</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 


    <dependency> 
     <groupId>com.goebl</groupId> 
     <artifactId>david-webb</artifactId> 
     <version>1.3.0</version> 
    </dependency> 

    <dependency> 
     <groupId>socialhub-commons</groupId> 
     <artifactId>socialhub-commons</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 

    <dependency> 
     <groupId>com.googlecode.json-simple</groupId> 
     <artifactId>json-simple</artifactId> 
     <version>1.1.1</version> 
    </dependency> 

    <dependency> 
     <groupId>com.smartera.monitor</groupId> 
      <artifactId>JSpy</artifactId> 
      <version>0.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.javassist</groupId> 
     <artifactId>javassist</artifactId> 
     <version>3.14.0-GA</version> 
     <type>jar</type> 
    </dependency> 

    <dependency> 
      <groupId>com.smartera.monitor</groupId> 
      <artifactId>jobsHandler</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
    </dependency> 

    <dependency> 
      <groupId>com.smartera.monitor</groupId> 
      <artifactId>jobsHandler-servlet-api</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <type>jar</type> 
    </dependency> 



</dependencies> 


<build> 
    <defaultGoal>install</defaultGoal> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.2</version> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration>  
       <webXml>WebContent\WEB-INF\web.xml</webXml> 
      </configuration> 
     </plugin> 



     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 


    </plugins> 
</build> 

J'apprécierais vraiment si quelqu'un peut me guider à une solution ou me dire pourquoi cela pourrait être impossible

Répondre

0

J'ai enfin pu le faire avec un 3 étapes très simples pour ubuntu 14.04

  1. nano ~/.profile
  2. au début du fichier joint les éléments suivants export MAVEN_OPTS="-javaagent:path/to/your/agent"
  3. enregistrer et fermer le fichier, puis fermez le termina, puis déconnectez-vous et reconnectez-vous.

et tattaaaa, cela fonctionne. Codage heureux.

+0

Bonne affaire, content que vous l'ayez résolu! –

1

Lo oks comme c'est juste une variable d'environnement que vous devez passer à Tomcat via la configuration Maven. Cette approche ne fonctionnera-t-elle pas? :

Increase memory of tomcat7 maven plugin?

+0

effectivement je ne suis pas au bureau actuellement et je ne peux pas atteindre la base de code. mais il semble que ça va marcher. Je vais essayer ça demain et vous le faire savoir. Merci pour vos efforts –

+0

Malheureusement, cela n'a pas fonctionné, comme d'autres l'ont mentionné dans le fil que vous avez joint à votre réponse, qu'il est trop tard pour passer un paramètre système. –

+0

Je l'ai upvoted parce que cela m'a amené à savoir comment résoudre le problème, alors que ce n'était pas la réponse, mais cela m'a beaucoup aidé. –