2014-10-03 3 views
0

OK,이게 저를 괴롭 히고 있습니다. 나는 우편으로 달리는 부두 Maven 플러그 접속 식을 얻는 것을 시도하고있다. JDK 1.6을 사용하기 때문에 6.1.15로 제한됩니다.maven jetty plugin : javax.mail.Session을 javax.mail.Session으로 캐스팅 할 수 없습니다.

이 예외가 계속 발생합니다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with nam 'mailService' defined in ServletContext resource [/WEB-INF/spring-agenttools.xml]: 

Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.tttt.iss.agenttools.util.MailService]: Constructor threw exception; nested exception is 

java.lang.ClassCastException: javax.mail.Session cannot be cast to javax.mail.Session 

이렇게 플러그인을 구성했습니다. classpath에서 모든 mail.jar을 제거하면 코드가 작동하지 않습니다. 추가하면 예외가 발생합니다.

<plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>maven-jetty-plugin</artifactId> 
      <version>${jetty.version}</version> 
      <configuration> 

       <!-- 
       <webApp>${basedir}/target/agenttools.war</webApp> 
       --> 
       <connectors> 
        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> 
         <port>8080</port> 
         <maxIdleTime>30000</maxIdleTime> 
         <headerBufferSize>8192</headerBufferSize> 
        </connector> 

        <connector implementation="org.mortbay.jetty.security.SslSocketConnector"> 
         <port>8443</port> 
         <maxIdleTime>30000</maxIdleTime> 
         <headerBufferSize>8192</headerBufferSize> 
         <keystore>${project.build.directory}/jetty-ssl.keystore</keystore> 
         <password>jetty6</password> 
         <keyPassword>jetty6</keyPassword> 
        </connector> 

       </connectors> 

       <jettyEnvXml>src/main/webapp/WEB-INF/jetty-web.xml</jettyEnvXml> 
       <useProvided>false</useProvided> 
       <webAppConfig> 
        <defaultsDescriptor>${basedir}/src/test/resources/webdefault.xml</defaultsDescriptor> 
        <contextPath>/</contextPath> 
        <!-- Defining the extraClasspath is tricky. Please leave it on one line. Multiline works in windows but it fails in a linux environment --> 
        <extraClasspath>${basedir}/target/agenttools</extraClasspath> 
        <baseResource implementation="org.mortbay.resource.ResourceCollection"> 
         <resourcesAsCSV>src/main/webapp</resourcesAsCSV> 
        </baseResource> 
       </webAppConfig> 

       <systemProperties> 
        <systemProperty> 
         <name>java.naming.factory.initial</name> 
         <value>org.mortbay.naming.InitialContextFactory</value> 
        </systemProperty> 
        <systemProperty> 
         <name>build.compiler</name> 
         <value>com.ttt.cs.is.ttt.jetty.JDTCompiler16</value> 
        </systemProperty> 
        <systemProperty> 
         <name>log4j.configuration</name> 
         <value>log4j-jetty.properties</value> 
        </systemProperty> 
       </systemProperties> 
       <stopPort>9966</stopPort> 
       <stopKey>halt</stopKey> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>javax.activation</groupId> 
        <artifactId>activation</artifactId> 
        <version>${activation.version}</version> 
       </dependency> 
       <dependency> 
        <groupId>javax.mail</groupId> 
        <artifactId>mail</artifactId> 
        <version>${mail.version}</version> 
       </dependency> 
       <dependency> 
        <groupId>antlr</groupId> 
        <artifactId>antlr</artifactId> 
        <version>2.7.7</version> 
       </dependency> 
       <dependency> 
        <groupId>xalan</groupId> 
        <artifactId>serializer</artifactId> 
        <version>${xalan.version}</version> 
       </dependency> 
       <dependency> 
        <groupId>xalan</groupId> 
        <artifactId>xalan</artifactId> 
        <version>${xalan.version}</version> 
       </dependency> 
       <dependency> 
        <groupId>mysql</groupId> 
        <artifactId>mysql-connector-java</artifactId> 
        <version>5.1.33</version> 
       </dependency> 

      </dependencies> 
     </plugin> 

어떻게 작동합니까? javax.mail : mail : 1.4를 사용하고 있습니다. 부두 버전과 동일합니다.

Jetty Plugin 메일을 제외하거나 무시할 수 있습니까?

참고 mail.jar은 클래스 경로에 한 번만 추가됩니다.

UPDATE 나는 완전히 mail.jar을 제거하면

이 앱이 시작,하지만 난 다음 문제를 얻는다. 그래서 지금 나는 하나의 메일만을 가지고있다. 당신의 도움에 대한

Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.SharedByteArrayInputStream 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:242) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227) 
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:379) 
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:341) 

감사합니다, Coenos

답변

0

나는 다음과 같은 특성

<configuration> 
    <systemProperties> 
    <systemProperty> 
     <key>org.mortbay.jetty.webapp.parentLoaderPriority</key> 
     <value>true</value> 
     </systemProperty> 
    </systemProperties> 
</configuration> 
를 사용하여 고정