小编Pre*_*ete的帖子

最佳实践 - 发送javamail mime多部分电子邮件 - 和gmail

我有一个需要发送确认电子邮件等的Tomcat应用程序.我已经用Javamail(mail.jar)编写了电子邮件编码器来发送多部分文本/ HTML电子邮件.我将代码基于Java EE示例.我在本地服务器上使用SMTP MTA.

它很棒.在Outlook中,我看到了HTML版本.如果我将其拖到Outlook垃圾邮件文件夹中,我会看到文本版本.所以我解释说它有效.

但是,如果我在Gmail中查看电子邮件,我只会看到文字版本.我知道HTML就在那里(这就是Outlook从中得到的).但是Gmail没有显示它...我有很多来自其他系统的电子邮件,在Gmail中显示为HTML.

有人能指出我显示我失踪的规格吗?我需要创建特殊标题吗?

谢谢

代码如下所示:

Message message = new MimeMessage(session);
Multipart multiPart = new MimeMultipart("alternative");

try {

    MimeBodyPart textPart = new MimeBodyPart();
    textPart.setText(text, "utf-8");

    MimeBodyPart htmlPart = new MimeBodyPart();
    htmlPart.setContent(html, "text/html; charset=utf-8");

    multiPart.addBodyPart(htmlPart);
    multiPart.addBodyPart(textPart);
    message.setContent(multiPart);

    if(from != null){
        message.setFrom(new InternetAddress(from));
    }else
        message.setFrom();

    if(replyto != null)
        message.setReplyTo(new InternetAddress[]{new InternetAddress(replyto)});
    else
        message.setReplyTo(new InternetAddress[]{new InternetAddress(from)});

    InternetAddress[] toAddresses = { new InternetAddress(to) };
    message.setRecipients(Message.RecipientType.TO, toAddresses);
    message.setSubject(subject);
    message.setSentDate(new Date());

    Transport.send(message);

} catch (AddressException e) {
    e.printStackTrace();
    System.out.println("Error: "+e.getMessage());

} catch (MessagingException …
Run Code Online (Sandbox Code Playgroud)

java tomcat smtp jakarta-mail html-email

27
推荐指数
1
解决办法
5万
查看次数

裁剪PhantomJS屏幕截图大小适合内容

PhantomJS在为我捕获网页到图像文件方面做得非常出色.我正在使用基于rasterize.js的脚本.

但是,对于某些固定大小的Web元素,我需要生成的图像与Web元素的大小相匹配.

我有一个这样的页面:

<html>
<body>
    <div id="wrapper" style="width:600px; height:400px;">
       Content goes here...
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我需要它来生成一个600x400的图像.是一种基于我正在栅格化的页面中的web元素动态获取视口大小的方法.

我知道这个不是一个简单的...想法?

谢谢

phantomjs

19
推荐指数
1
解决办法
9666
查看次数

你如何使用 Go 1.16 在子文件夹/包中嵌入功能?

Go 1.16 已经发布,我想使用新的嵌入功能。如果一切都在主包中,我可以让它工作。但是不清楚如何处理从子文件夹/包访问资源。尝试通过 embed.FS 支持来实现。

例如,我在处理程序包/文件夹中有一个 main.go 和一个 HTTP 处理程序

如果我将处理程序放在主程序中,它就可以工作。如果我把它放在处理程序包中,它找不到模板。我得到:

handlers/indexHandler.go:11:12: pattern templates: no matching files found exit status 1

同样,如果我从 / 提供它,我可以让它从静态文件夹提供图像。但是我不能同时提供来自 / 的处理程序和来自 / 的静态/图像。如果我将图像放在 /static/ 上,它找不到图像。

我认为这与相对路径有关。但是我无法通过反复试验找到正确的组合......依赖这些功能是否为时过早?

以前我用的是 go-rice,我没有这些问题。但我想尽可能多地使用 std 库。

main.go:

package main

import (...)

//go:embed static
var static embed.FS

func main() {

    fsRoot, _ := fs.Sub(static, "static")
    fsStatic := http.FileServer(http.FS(fsRoot))
    http.Handle("/", fsStatic)
    http.HandleFunc("/index", Index)
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

处理程序/indexHandler.go:

package handlers

import (...)

//go:embed templates
var templates embed.FS

// Index handler
func Index(w http.ResponseWriter, r …
Run Code Online (Sandbox Code Playgroud)

go go-http

8
推荐指数
1
解决办法
3421
查看次数

tomcat 7忽略了我的context.xml

我希望这是一个愚蠢的事情.但我一直盯着它看太久了.

我在Linux上升级到Tomcat 7(从6开始),它忽略了我的context.xml文件.如果我在server.xml中包含Context(数据源),它可以正常工作.但我想最终从server.xml中获取这些东西.

我使用分离的上下文在Windows/Eclipse中运行Tomcat 7,它运行正常.

我尝试过Host copyXML参数.即使它确实复制了context.xml,它也不会使用它...除非我将它包含在server.xml中的Host中.当它失败时,它抱怨它无法获得我的MySQL连接:"无法获得连接,DataSource无效"

我确定配置的其余部分很好,因为当我将它粘贴到server.xml时它可以工作...

有人可以指出我错过了什么吗?不应该这么困难.谢谢!

顺便说一句:在CentOS 5.9(64)上,它是简单的Tomcat7(不是rpm),JDK-7u11.

位置:

/var/webapps/shop1
    query.jsp
/var/webapps/shop1/META-INF
    context.xml
Run Code Online (Sandbox Code Playgroud)

在server.xml中:

<Host name="dev3.domain.net" appBase="/var/webapps" 
    unpackWARs="true" autoDeploy="true">

    <Context docBase="shop1" path="" reloadable="true" />
</Host>
Run Code Online (Sandbox Code Playgroud)

context.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/shop1db" auth="Container"
            type="javax.sql.DataSource"
            factory="org.apache.commons.dbcp.BasicDataSourceFactory"
            maxActive="50" maxIdle="25" maxWait="10000"
            username="user" password="pass"
            driverClassName="com.mysql.jdbc.Driver"
            validationQuery="SELECT 1"
            url="jdbc:mysql://localhost/shop1"
            logAbandoned="true" removeAbandoned="true" removeAbandonedTimeout="60"
    />
</Context>
Run Code Online (Sandbox Code Playgroud)

在web.xml中:

<context-param>
    <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
    <param-value>jdbc/shop1db</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

tomcat context.xml server.xml tomcat7

7
推荐指数
1
解决办法
2万
查看次数

Bootstrap 3选项卡和HTML5表单验证

验证隐藏选项卡上的元素的经典问题.我已经阅读了一百篇包含复杂解决方法的帖子.有没有人有一个更简单,更优雅的解决方案,适用于一般案例?即没有专门针对每种形式编码?

HTML5承诺提供优雅的解决方案.但是Tabs开玩笑了......

谢谢

更多..?从Bootstrap示例.如果您有标记为"必需"的字段(HTML5验证),则验证将不适用于非活动(隐藏)选项卡.而且我相信其他javascript验证技术也会失败并带有标签.

我希望有人有一个很好的通用技术解决方案,不需要在每个页面上的代码.HTML5验证很好很干净 - 直到你添加标签...

它不会提交.但它不会给出错误......

<!-- Nav tabs -->
<ul class="nav nav-tabs">
  <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
  <li><a href="#profile" data-toggle="tab">Profile</a></li>
  <li><a href="#messages" data-toggle="tab">Messages</a></li>
  <li><a href="#settings" data-toggle="tab">Settings</a></li>
</ul>

<!-- Tab panes -->
<div class="tab-content">
  <div class="tab-pane active" id="home">...</div>
  <div class="tab-pane" id="profile">...
    <input type="text" name="name" required>
  </div>
  <div class="tab-pane" id="messages">...
    <input type="text" name="address" required>
  </div>
  <div class="tab-pane" id="settings">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript jquery twitter-bootstrap twitter-bootstrap-3

7
推荐指数
1
解决办法
1万
查看次数

Eclipse/Tomcat忘记了自定义标签?

我在Windows 7 64位上使用Eclipse Kepler和Tomcat 7.

如果我清理项目并重新启动服务器,一切都很好.但是,如果我工作几分钟...就像编辑一个jsp ... Tomcat barfs以下...

它抱怨丢失的标签是页面布局的标签.没有其他令人兴奋的东西,除了它有一些jspf包括和内容页面也称为其他标签.但同样,没有什么令人兴奋

我不知道我是如何导致这一点的,因为事情编译并且最初运行良好.但是Tomcat似乎失去了对标签类的追踪.

如果我清理项目,它会恢复工作一段时间......

有任何想法吗?谢谢

HTTP Status 500 - Unable to compile class for JSP:

type Exception report

message Unable to compile class for JSP:

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 33 in the jsp file: /folder/page.jsp
org.apache.jsp.tag.weblayout_002dmain_tag cannot be resolved to a type
30: 
31: 
32: 
33: <tags:layout-main>
34:     <jsp:attribute …
Run Code Online (Sandbox Code Playgroud)

eclipse jsp tomcat custom-tags

5
推荐指数
1
解决办法
443
查看次数

Multipart Upload Servlet 3.0 - 不删除的临时文件

我有一个上传的servlet工作得很好,但留下了临时文件.我正在尝试使用part.delete()来清理它们,但它们并没有删除.

文档说容器会在GC执行时删除它们.但即使我等了一个小时并最终关闭了服务器,他们仍然在那里......

有什么诀窍?现在是Windows上的Eclipse Kepler和Tomcat 7.0.47.但生产将是Linux.

谢谢

代码大致浓缩:

@MultipartConfig(location = "C:/tmp",
    fileSizeThreshold=1024*1024*10, // 10MB
    maxFileSize=1024*1024*10,      // 10MB
    maxRequestSize=1024*1024*50)   // 50MB
@WebServlet("/upload.do")

    ...

for (Part part : request.getParts()) {
    String filename = getFilename(part);
    if(!(filename==null)){
        part.write("/elsewhere/"+filename);
        part.delete();
    } else {
        out.println("skip field...");
    }
}   
Run Code Online (Sandbox Code Playgroud)

java servlets multipartform-data servlet-3.0

5
推荐指数
1
解决办法
1404
查看次数

如何通过网络保护MySQL连接?

我在Centos 6上运行Tomcat 7/MySQL 5.6.是时候将数据库分离到另一台服务器了.保护Tomcat和后端MySQL服务器之间连接的最佳方法是什么?它是虚拟化的,我不想在共享网络上运行连接.

我正在考虑通过ssh进行隧道传输.SSL看起来很多工作.但是什么是"推荐"方法?

mysql linux tomcat

5
推荐指数
1
解决办法
604
查看次数

Tomcat自行关闭

我在CentOS 6.5 64位和OpenJDK 1.7 64上运行Tomcat 7.0.53.

我偶尔会有几台服务器 - 比如每周随机一次 - Tomcat会优雅地关闭自己.我已经看了好几个月了,找不到原因.唯一的模式似乎是长时间没有任何事情,然后关闭.

  • 我已升级到最新版本的底层工具(Tomcat,Java等)
  • 我正在运行默认的内存设置
  • 我在server.xml中禁用了SHUTDOWN
  • 我已经将MySQL移动到另一个盒子以确保Tomcat是唯一的实体应用程序(服务器也运行nginx)
  • 我已经验证我的任何代码中都没有System.exit().我没有扫描libs,因为我无法弄清楚如何做到这一点.而且我不指望我会找到任何东西.为什么图书馆会退出?
  • 我已启用垃圾收集的日志记录.但它们似乎很快 - 就像0.15秒的完整GC一样

以下是其中一个服务器的内存使用情况.大量的RAM免费.

                 total       used       free     shared    buffers     cached
    Mem:          2006        771       1234          0        176        281
    -/+ buffers/cache:        313       1692
    Swap:         2047          0       2047
Run Code Online (Sandbox Code Playgroud)

以下是Catalina.out中的一项活动.你可以看到它开始然后几个小时没有什么令人兴奋的事情.然后优雅地关闭自己,好像被告知.

我已经研究过这个死亡,并且无法对此进行处理.

有人可以为我提出行动计划吗?

谢谢

从Server.xml:

    <Server port="-1" shutdown="__SHUTDOWN__">
Run Code Online (Sandbox Code Playgroud)

从Catalina.out:

Apr 28, 2014 5:34:50 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Valve} Setting property 'remoteIpProxiesHeader' to 'x-forwarded-by' did not find a matching property.
Apr 28, 2014 5:34:50 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler …
Run Code Online (Sandbox Code Playgroud)

java linux tomcat

5
推荐指数
1
解决办法
2万
查看次数

Bootstrap 3多个菜单合并为一个用于移动设备

我已经和菜单争了一段时间了.我想要的是顶级菜单和侧面菜单.并且为了在移动设备上有用,两个菜单都需要折叠成可在手机上访问的内容.这有可能吗?或者我是否必须为不同的屏幕尺寸编写不同的解决方案?

谢谢

jquery twitter-bootstrap twitter-bootstrap-3

4
推荐指数
1
解决办法
8353
查看次数