- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在Cucumber testRunner类中编写一段代码,执行后通过电子邮件发送测试结果报告,但我遇到了这个问题,我一直无法解决。我添加了 Javax.Mail 库(版本 1.6.1)的依赖项,并在 testRunner 中编写了以下方法,
@AfterClass
public static void teardown() throws UnknownHostException, IOException {
HTML_TestExecutionReportParser testExecutionStatusParser = new HTML_TestExecutionReportParser();
sendTestExecutionReportEmail(testExecutionStatusParser.isAssertionFailureFound());
}
public static void sendTestExecutionReportEmail(boolean testExecutionStatus) throws IOException {
String mailSubject = null;
String mailBody = null;
if (testExecutionStatus) {
mailSubject = "Sub";
mailBody = "body";
sendEmail(mailSubject,mailBody);
}
else {
mailSubject = "Sub";
mailBody = "body";
sendEmail(mailSubject,mailBody);
}
}
public static void sendEmail(String mailSubject, String mailBody) throws IOException {
Properties props = new Properties();
Properties prop = new Properties();
PropertyFileLoader propFileLoader = new PropertyFileLoader();
prop = propFileLoader.loadPropertyFile("PropertyFiles", "EmailConfiguration.properties");
props.put("mail.smtp.host", prop.getProperty("SMTPHostName"));
props.put("mail.smtp.port", prop.getProperty("SMTPPort"));
props.put("mail.smtp.ssl.trust", prop.getProperty("SMTPHostName"));
final String EmailP = prop.getProperty("SMTPP");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.connectiontimeout", "10000");
final String User = prop.getProperty("SMTPU");
Configurations config = new Configurations();
String reportFolderPath = "TestExecutionReports";
String reportName = "report.html";
try {
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(User, EmailP);
}
});
InternetAddress fromAddress = new InternetAddress("email", "name");
InternetAddress toAddress = new InternetAddress("email", "name");
session.getProviders();
session.setDebug(true);
Message msg = new MimeMessage(session);
msg.setFrom(fromAddress);
msg.addRecipient(Message.RecipientType.TO, toAddress);
msg.setSubject(mailSubject);
Multipart multipart = new MimeMultipart();
MimeBodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText(mailBody);
MimeBodyPart attachmentBodyPart = new MimeBodyPart();
String attachmentName = config.getResourcePath(reportFolderPath) + reportName;
DataSource source = new FileDataSource(attachmentName);
attachmentBodyPart.setDataHandler(new DataHandler(source));
attachmentBodyPart.setFileName("Report.html");
multipart.addBodyPart(textBodyPart);
msg.setContent(multipart);
Transport.send(msg);
} catch (MessagingException e) {
System.out.println(e.getMessage() + e.getStackTrace());
} catch (UnsupportedEncodingException e) {
System.out.println(e.getMessage());
}
}
代码中没有显示错误,但是当我运行它时,它在控制台中抛出以下错误,
DEBUG: setDebug: JavaMail version 1.4.3
DEBUG: getProvider() returning
javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun
Microsystems, Inc.,1.4.3]
java.lang.ClassNotFoundException: com.sun.mail.smtp.SMTPTransport
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
最初,当我编写代码时,虽然我对POM.xml文件中提到的最新版本有依赖,但在Maven依赖项下找不到任何Javax.mail jar文件,但代码没有显示任何错误。后来我设法通过 Maven 正确安装了 Javax.mail 库(版本 1.6.1),但是当我运行测试时,上面的异常不断抛出,从上面控制台输出的第一行来看,我假设 Maven 是正在寻找旧版本的 Javax.mail 库,由于它不可用,因此会抛出 classNotFound 异常。但我不确定如何将 Maven 指向 Maven 依赖项下可用的最新 Javax.mail 库。
非常感谢任何帮助......!
编辑:mvn dependency:tree 日志如下,
RestAssured:APITesting:jar:0.0.1-SNAPSHOT
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.0:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-
annotations:jar:2.9.0:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-core:jar:2.9.0:compile
[INFO] +- io.rest-assured:rest-assured:jar:3.0.7:test
[INFO] | +- org.codehaus.groovy:groovy:jar:2.4.12:test
[INFO] | +- org.codehaus.groovy:groovy-xml:jar:2.4.12:test
[INFO] | +- org.apache.httpcomponents:httpclient:jar:4.5.3:compile
[INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.4.6:compile
[INFO] | | +- commons-logging:commons-logging:jar:1.2:compile
[INFO] | | \- commons-codec:commons-codec:jar:1.9:compile
[INFO] | +- org.apache.httpcomponents:httpmime:jar:4.5.1:compile
[INFO] | +- org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] | +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2.1:test
[INFO] | +- io.rest-assured:json-path:jar:3.0.7:test
[INFO] | | +- org.codehaus.groovy:groovy-json:jar:2.4.12:test
[INFO] | | \- io.rest-assured:rest-assured-common:jar:3.0.7:test
[INFO] | \- io.rest-assured:xml-path:jar:3.0.7:test
[INFO] | \- javax.xml.bind:jaxb-api:jar:2.2.12:test
[INFO] +- junit:junit:jar:4.12:compile
[INFO] +- io.rest-assured:json-schema-validator:jar:3.0.3:test
[INFO] | \- com.github.fge:json-schema-validator:jar:2.2.6:test
[INFO] | +- com.google.code.findbugs:jsr305:jar:3.0.0:test
[INFO] | +- joda-time:joda-time:jar:2.3:test
[INFO] | +- com.googlecode.libphonenumber:libphonenumber:jar:6.2:test
[INFO] | +- com.github.fge:json-schema-core:jar:1.2.5:test
[INFO] | | +- com.github.fge:uri-template:jar:0.9:test
[INFO] | | | +- com.github.fge:msg-simple:jar:1.1:test
[INFO] | | | | \- com.github.fge:btf:jar:1.2:test
[INFO] | | | \- com.google.guava:guava:jar:16.0.1:test
[INFO] | | +- com.github.fge:jackson-coreutils:jar:1.8:test
[INFO] | | \- org.mozilla:rhino:jar:1.7R4:test
[INFO] | +- javax.mail:mailapi:jar:1.4.3:test
[INFO] | \- net.sf.jopt-simple:jopt-simple:jar:4.6:test
[INFO] +- info.cukes:cucumber-java:jar:1.2.5:test
[INFO] | \- info.cukes:cucumber-core:jar:1.2.5:test
[INFO] | +- info.cukes:cucumber-html:jar:0.2.3:test
[INFO] | +- info.cukes:cucumber-jvm-deps:jar:1.0.5:test
[INFO] | \- info.cukes:gherkin:jar:2.12.2:test
[INFO] +- info.cukes:cucumber-junit:jar:1.2.5:test
[INFO] +- com.google.code.gson:gson:jar:2.3.1:compile
[INFO] +- org.assertj:assertj-core:jar:3.5.1:test
[INFO] +- com.vimalselvam:cucumber-extentsreport:jar:3.0.0:compile
[INFO] +- com.aventstack:extentreports:jar:3.0.6:compile
[INFO] | +- org.freemarker:freemarker:jar:2.3.23:compile
[INFO] | +- org.mongodb:mongodb-driver:jar:3.3.0:compile
[INFO] | | +- org.mongodb:bson:jar:3.3.0:compile
[INFO] | | \- org.mongodb:mongodb-driver-core:jar:3.3.0:compile
[INFO] | \- org.jsoup:jsoup:jar:1.9.2:compile
[INFO] +- com.github.javafaker:javafaker:jar:0.12:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.5:compile
[INFO] | \- com.github.mifmif:generex:jar:1.0.2:compile
[INFO] | \- dk.brics.automaton:automaton:jar:1.11-8:compile
[INFO] +- javax.mail:javax.mail-api:jar:1.6.1:compile
[INFO] | \- javax.activation:activation:jar:1.1:compile
[INFO] \- log4j:log4j:jar:1.2.17:compile
最佳答案
您需要从 io.rest-assured:json-schema-validator
中排除 javax.mail:mailapi
。
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>3.0.3</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mailapi</artifactId>
</exclusion>
</exclusions>
</dependency>
问题在于您的 pom.xml
实际上包含两个 Java Mail API Artifact :javax.mail:mailapi
和 javax.mail:javax.mail- api
。从技术上讲,这是两个不同的 Artifact ,因此包括特定版本的 javax.mail-api
不会覆盖 mailapi
的版本。
无论如何,mailapi
似乎是无效的 Artifact ,可能是由某人错误部署的。
您可能还想联系 json-schema-validator 的开发人员并让他们知道他们使用了无效的 mailapi
Artifact 。
关于java - Maven 搜索旧版本的 Javax.Mail 依赖项 (1.4.3),尽管我有最新版本 (1.6.1) 并抛出 ClasNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49669475/
我正在尝试关注 this tutorial .我想我不是从使用可下载项目开始,而是从我之前做过的一个简单的“spring MVC - Maven - eclipse”项目开始。这个项目运行良好。 因此
我觉得 Java EE 6 规范有些困惑。有几组注释。 我们有javax.ejb注释如 @Stateful和 @Stateless用于创建 EJB。 还有一个@javax.annotation.Man
我正在开发一个依赖于“javax.lang”和“javax.annotation”的java项目。我安装了jre/jdk,类路径上还有很多其他javax.*,我每天都用Java进行开发。但是,这两个包
我正在尝试将一个值添加到 JsonValue 列表中。可以这样做吗? 一些背景知识,我正在从 Rest API 检索 Json 响应,在此 Json 中是一个如下名称列表: { “名称”:{名称1,名
我正在开发一个 JSF2、Icefaces 网络应用程序。我有以下看法: 当我保存上面的 时出现以下异常. Application caught instance of
我遇到了一个小问题,我的代码中有一个异常。 我有一个基本框架类: import java.awt.BorderLayout; import java.awt.Color; import java.aw
我正在使用 Apache Derby 并具有以下代码: DBConnectionFactory.java package edu.unsw.comp9321.jdbc; import java.sql
javax.mail 和 javax.mail-api 有什么区别? 我从 maven 存储库中找到了那些。 什么时候应该使用它们? javax.mail-api自带的软件包,但我无法使用,所以我下载
我是 Java 的新手,正在尝试进入 WebServices。我在某处找到了两个示例,但对可用选项感到困惑。 首先,带注解的javax.jws.WebService 似乎工作正常,但javax.xml
在升级了一些 Glassfish/Grizzly 依赖项之后(为了与最新版本的 Azure SDK IOT 设备客户端兼容),我开始出现错误,因为 com.google.common.EventBus
我收到了一个遗留 JSP 系统,其中 Eclipse 在每次出现以下代码时都会标记“导入 javax.event 无法解析”错误: 这是我的java版本: shakir@anduril:~$ jav
我使用以下代码获取连接到系统的 USB 设备的制造商代码。我添加了 jsr80-1.0.1 jar 。我收到以下错误 javax.usb.UsbException: Properties file j
我正在学习 EJB,当尝试使用 junit 测试它时,出现以下错误 cd.espoirmur.Ejb.InterfaceEjbLocal_80488159 Jun 03, 2016 10:33:58
我必须处理一个需要提供数据源作为参数的 API。问题是我从提供 EntityManager 或 PersistentContext 的上下文访问它,它们似乎没有通过其方法公开任何数据源。如何以编程方式
据我所知,Java ServletContext 和上下文对象在 Java EE 程序开发中很常见。但是,我不太确定它们之间有什么区别,尤其是上下文类的用法。 据我了解,ServletContext
我在一个简单的 tomcat jsp 项目中遇到了这个错误。我在谷歌上阅读的文章暗示我应该在我的项目中包含 servlet-api.jar。我就是这样做的,但没有用。有人对此有任何想法吗?我的 JRE
我想对我的实体进行一些 Bean 验证,以便我可以适本地映射错误以发送回客户端。 我知道 javax.validation.constraints 注释用于实现此目的。我的问题是,对于模式生成,我需要
想法:2018.3 jetty :9.4.11 我按照 IDEA 中给出的说明下载了 jrebel 文件夹 在 Debug模式下运行 Jetty 服务器时出现以下错误。 HTTP ERROR 500
我正在开发一个主要使用无状态 session bean (SLSB) 的 EJB3 应用程序。他们使用容器管理事务 (CMT)。 我希望 bean 知道事务(用于日志记录等)。我可以实现 javax.
我正在使用 OSGI 开发 Web 应用程序。我有一个我找不到的 Maven 配置错误。这是完整的源代码: http://uploading.com/files/8e5c9888/SH_27_test
我是一名优秀的程序员,十分优秀!