- 浏览: 1065556 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (314)
- java 技术 (45)
- Java Util (3)
- Struts2 学习笔记 (23)
- MySql@数据库 (18)
- Oracle@数据库 (4)
- sqlserver@数据库 (20)
- Hibernate配置及应用 (7)
- 基础学习笔记@javaScript (24)
- 常用应用实例@javaScript (41)
- 网页设计 (20)
- bug (13)
- 总结 (4)
- eclipse应用 (23)
- tomcat设置及问题 (15)
- SWFUplaod学习笔记 (7)
- C# (5)
- PPT经验技巧 (8)
- 心情随笔 (3)
- 其他 (19)
- jquery (4)
- sping (1)
- json相关 (2)
最新评论
-
流年已逝_奋斗不止2013:
很有用,谢谢!
HQL select 总结 -
qq_31945283:
完美解决了我的难题,谢谢
四、struts2+swfUpload例子二 -
qq_31945283:
...
四、struts2+swfUpload例子二 -
sunbingrun:
集成到我的项目里, 居然post_params: {&quo ...
三、struts2+swfUpload简单例子 -
flyarun:
牛B ,这种人就是我的偶像
四、struts2+swfUpload例子二
[color=darkred][/color]听说James是个不错的java mail server,所以下了个学习,希望可以开发一个自己的mailserver,用别人的太受气了,O(∩_∩)O~
参考:http://www.iteye.com/topic/213246
http://hi.baidu.com/luoleicn/blog/item/8c382fd4eb86f907a18bb789.html
和相关文档
一、James的安装
环境要求:
JDK1.3+,环境变量JAVA_HOME(我用的是JDK1.6)。
安装
1、Apache James 的官方网站为:http://james.apache.org/,当前 Server 的最新版为 2.3.1版. 安装非常简单,下载后得到james-binary-2.3.1.zip 文件,解压后即可。这里假设解压到E盘(E:\james),目录结构如下:
2、启动 James 服务器
双击或在命令行下执行D:\james\bin 目录下的 run.bat文件(Linux 系统 执行run.sh),即可启动 James 服务器.
如果在控制台看到类似的信息说明启动正常:
要关闭 James 服务,请使用 Ctrl + C
说明:启动前请确保您的JDK环境变量如JAVA_HOME等已经设置好;James 启动时,其SMTP 服务默认在 25 端口启动,POP3 服务默认在 110 端口启动, NNTP 服务默认在 119 端口启动, 请确保这些端口未被占用。比如本系统下就已经安装了Microsoft的 SMTP 服务,造成 James无法启动,解决方法为:开始--->设置--->控制面板--->管理工具--->服务,打开后找到“Simple Mail Transport Protocol(SMTP)”服务项,关闭即可。
启动成功后,apps目录下多了一个james目录
SAR-INF 下有一个config.xml是james中的核心配置文件。
Logs 包含了与james有关的Log。调试全靠它了。
Var 包含了一些文件夹通过它们的名字我们大概也能猜测出它们的用途。Mail主要用于存储邮件。nntp主要用于新闻服务器。Users用于存储所有邮件服务器的用户。也就是邮件地址前面的东东。如:pig@sina.com的pig就是所谓用用户。
二、服务配置
服务器启动后会在本机配置一个默认的服务,这可以用来在本机上本服务器范围内收发邮件,但是邮件发不到163等外网邮箱。我们这里关注的重点就是配置一个能发到外网如163这样的邮箱的邮件,这样才有价值。不过由于本人是在本机上测试,一时不能获取公司的域名参数,无法测试接收外网邮箱(如163)的邮件,见晾,不过做法都是一样的,至少我们可以向外网邮箱发送邮件,局域网内可以收、发邮件。
打开E:\james\apps\james\SAR-INF 下的 config.xml 文件,初次启动James之前,不会有这个文件,只有当James服务启动一次之后才自动构件该文件。
找到
把localhost该成你自己想要的邮箱域名, 把自动探测IP属性设置为“false”这里假设改成 myself.com 如果开了一个帐号 hx ,那么他的邮件地址就是 hx@myself.com修改结果如下:
找到
将其注释掉
找到下面元素,去掉其注释
这样邮箱访问需要帐号验证,你不希望别人用你的帐号收发消息吧……^_^
如此,James服务配置已经完成。
三、创建邮件帐号
现在进入命令行控制台,输入telnet localhsot 4555 进入James管理器。
将进入
默认的登陆id 为root 密码也为 root ,登陆成功后结果如下:
创建新用户的命令是:adduser username password
这里创建了两个账户来作为演示使用: hx/hx admin/admin
说明:你可以输入help来获取命令帮助
账号创建成功后,使用quit退出管理器。现在我们可以开始部署我们的JMail应用了。
四、 客户端配置
假设有一个账号,用户名为hx,密码为hx,如何在Outlook中配置呢?
首先,根据用户名,可以得出该用户邮箱地址为hx@myself.com,然后在输入POP3和SMTP服务器时,直接使用服务器机器名myself.com即可
五、用户信息的数据库存储
James邮件用户的用户信息默认保存在apps/james/var/users目录下,通过修改配置文件apps"james"SAR-INF"config.xml,可以把用户信息保存到数据库中,配置方法如下:
假设使用的是MySQL数据库:
第一步:首先将MySQL的驱动程序(例如:mysql-connector-java-bin.jar)考到james的lib目录下(例如:E:/james/lib)
第二步:在MySQL中新建一个数据库mail;
第三步:打开config.xml,找到<users-store>这一项,此面默认的内容为:
将其注释掉
找到
释放注释
其中users是存储用户信息的表名,可自定义。
通过修改,我们就把用户信息的存储介质从file改成了db,<sqlFile>是指明了在db中的数据表结构及相关数据库信息。
第四步:仍然是config.xml,找到<data-sources>项,默认内容为空。
这一部很重要,maildb这个数据源在很多地方用到。
找到:
释放注释,填写相应的用户明和密码。
mail是事先建好的数据库名(可任意取名)。
如果你的配置正确重新启动james。
james正常启动后,用telnet localhost 4555,进入管理界面,创建邮件帐号。
你将在mysql数据库中看到相应的数据。O(∩_∩)O~
六、用James收发邮件
现在我们来写两个简单的程序来体验一下如何使用James收发邮件。请注意,示例程序是通用的。
关于接受邮件部分,我们在代码中通过注释来描述。另外我们来回忆一下上述步骤配置James服务器的参数:
1.smtp 服务器:IP或者localhost 由于我James服务就装在我的机器上,所以我可以用localhost
2.两个邮件帐号:hx/hx
对应邮箱地址hx@myself.com
admin/admin
对应邮箱地址:admin@myself.com
注意:邮箱域名我们配置的是myself.com
示例程序:
说明: 执行测试时,先执行发送,在main方法中注释掉邮件接受方法调用,等待片刻,再注释掉邮件发送方法调用,执行邮件接受方法调用。因为就算163这样优秀的企业级邮箱也不可能瞬间就能收到发送的邮件。 在邮件发送方法中:sendMail(), 可以尝试一下又本邮件服务器向163邮箱发送邮件,如果想通过163邮件服务器想本地发送邮件,你需要配置DSN。
以下为本机接收James邮件服务器提供服务的邮件结果:
该文件在 E:\james\apps\james\var\mail\inboxes\admin目录下
七、FAQ
1、在启动james时,提示POP3或SMTP不能使用?
请检查一下,看“管理工具—>服务”里面,是不是启动了别的邮件服务器,已将110或25端口占用了。
实例:
james前台直接运行时出错:
ERROR [Phoenix.] (): Component named "smtpserver" failed to pass through the Initialization stage. (Reason: Java.net.BindException: Address already in use: JVM_Bind).
ERROR [Phoenix.] (): There was an error running phase "startup" for Block named "smtpserver". (Reason: Component named "smtpserver" failed to pass through the Initialization stage. (Reason: Java.net.BindException: Address already in use: JVM_Bind).).
org.apache.excalibur.containerkit.lifecycle.LifecycleException: Component named "smtpserver" failed to pass through the Initialization stage. (Reason: Java.net.BindException: Address already in use: JVM_Bind).
原因:
james默认设置不允许在同一台机器上跑两个邮件服务器进程。必须关掉另一个!
检测方法:
console界面下:
d:> telnet 主机名 25(或110)
如果可以登录,出现
220 主机名 Microsoft ESMTP MAIL Service, Version: 6.0.2600.1106 ready at Thu,
25 Aug 2005 14:14:36 +0800
则说明此机器上已有一台邮件服务器在运行。
解决:
检查Windows上运行服务:
跨网传输电子邮件的服务Simple Mail Transfer Protocol (SMTP),是否启动
如启动关闭之!
2、 JAVA_HOME找不到?
请在run.bat中指定JAVA_HOME,若还不行,请在“我的电脑—>系统—>高级—>环境变量”中添加一项JAVA_HOME。
3、服务器启动正常,但客户端不能收发邮件?
请检查客户端配置是否正常,参照前面所讲,另外,请检查james下的config.xml,是否把localhost改成了机器名。
4、修改为数据库储存后,james启动出错:
一般是数据库驱动有错。检查一下
<data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">
<driver>org.gjt.mm.mysql.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail</dburl>
<user>root</user>
<password></password>
<max>20</max>
</data-source>
的<driver>org.gjt.mm.mysql.Driver</driver>是否对
参考:http://www.iteye.com/topic/213246
http://hi.baidu.com/luoleicn/blog/item/8c382fd4eb86f907a18bb789.html
和相关文档
一、James的安装
环境要求:
JDK1.3+,环境变量JAVA_HOME(我用的是JDK1.6)。
安装
1、Apache James 的官方网站为:http://james.apache.org/,当前 Server 的最新版为 2.3.1版. 安装非常简单,下载后得到james-binary-2.3.1.zip 文件,解压后即可。这里假设解压到E盘(E:\james),目录结构如下:
引用
James
|_ _apps
|_ _bin
|_ _conf
|_ _ext
|_ _lib
|_ _logs
|_ _tools
|_ _apps
|_ _bin
|_ _conf
|_ _ext
|_ _lib
|_ _logs
|_ _tools
2、启动 James 服务器
双击或在命令行下执行D:\james\bin 目录下的 run.bat文件(Linux 系统 执行run.sh),即可启动 James 服务器.
如果在控制台看到类似的信息说明启动正常:
Using PHOENIX_HOME: E:\james Using PHOENIX_TMPDIR: E:\james\temp Using JAVA_HOME: D:\jdk1.6.0_02 Phoenix 4.2 James Mail Server 2.3.1 Remote Manager Service started plain:4555 POP3 Service started plain:110 SMTP Service started plain:25 NNTP Service started plain:119 FetchMail Disabled
要关闭 James 服务,请使用 Ctrl + C
说明:启动前请确保您的JDK环境变量如JAVA_HOME等已经设置好;James 启动时,其SMTP 服务默认在 25 端口启动,POP3 服务默认在 110 端口启动, NNTP 服务默认在 119 端口启动, 请确保这些端口未被占用。比如本系统下就已经安装了Microsoft的 SMTP 服务,造成 James无法启动,解决方法为:开始--->设置--->控制面板--->管理工具--->服务,打开后找到“Simple Mail Transport Protocol(SMTP)”服务项,关闭即可。
启动成功后,apps目录下多了一个james目录
引用
james
|_ _SAR-INF
|_ _conf
|_ _logs
|_ _var
|_mail
|_address-error
|_error
|_indexes
|_outgoing
|_relay-denied
|_spam
|_spool
|_nntp
|_....
…
|_users
|_ _SAR-INF
|_ _conf
|_ _logs
|_ _var
|_mail
|_address-error
|_error
|_indexes
|_outgoing
|_relay-denied
|_spam
|_spool
|_nntp
|_....
…
|_users
SAR-INF 下有一个config.xml是james中的核心配置文件。
Logs 包含了与james有关的Log。调试全靠它了。
Var 包含了一些文件夹通过它们的名字我们大概也能猜测出它们的用途。Mail主要用于存储邮件。nntp主要用于新闻服务器。Users用于存储所有邮件服务器的用户。也就是邮件地址前面的东东。如:pig@sina.com的pig就是所谓用用户。
二、服务配置
服务器启动后会在本机配置一个默认的服务,这可以用来在本机上本服务器范围内收发邮件,但是邮件发不到163等外网邮箱。我们这里关注的重点就是配置一个能发到外网如163这样的邮箱的邮件,这样才有价值。不过由于本人是在本机上测试,一时不能获取公司的域名参数,无法测试接收外网邮箱(如163)的邮件,见晾,不过做法都是一样的,至少我们可以向外网邮箱发送邮件,局域网内可以收、发邮件。
打开E:\james\apps\james\SAR-INF 下的 config.xml 文件,初次启动James之前,不会有这个文件,只有当James服务启动一次之后才自动构件该文件。
找到
…… <postmaster>Postmaster@localhost</postmaster> …… <servernames autodetect="true" autodetectIP="true"> <servername>localhost</servername> </servernames> ……
把localhost该成你自己想要的邮箱域名, 把自动探测IP属性设置为“false”这里假设改成 myself.com 如果开了一个帐号 hx ,那么他的邮件地址就是 hx@myself.com修改结果如下:
…… <postmaster>Postmaster@myself.com</postmaster> …… <servernames autodetect="false" autodetectIP="false"> <servername>myself.com</servername> </servernames> ……
找到
<mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor"> <processor> relay-denied </processor> <notice>550 - Requested action not taken: relaying denied</notice> </mailet>
将其注释掉
找到下面元素,去掉其注释
<authRequired>true</authRequired>
这样邮箱访问需要帐号验证,你不希望别人用你的帐号收发消息吧……^_^
如此,James服务配置已经完成。
三、创建邮件帐号
现在进入命令行控制台,输入telnet localhsot 4555 进入James管理器。
将进入
引用
JAMES Remote Administration Tool 2.3.1 Please enter your login and password Login id:
默认的登陆id 为root 密码也为 root ,登陆成功后结果如下:
引用
Welcome root. HELP for a list of commands
创建新用户的命令是:adduser username password
这里创建了两个账户来作为演示使用: hx/hx admin/admin
说明:你可以输入help来获取命令帮助
账号创建成功后,使用quit退出管理器。现在我们可以开始部署我们的JMail应用了。
四、 客户端配置
假设有一个账号,用户名为hx,密码为hx,如何在Outlook中配置呢?
首先,根据用户名,可以得出该用户邮箱地址为hx@myself.com,然后在输入POP3和SMTP服务器时,直接使用服务器机器名myself.com即可
五、用户信息的数据库存储
James邮件用户的用户信息默认保存在apps/james/var/users目录下,通过修改配置文件apps"james"SAR-INF"config.xml,可以把用户信息保存到数据库中,配置方法如下:
假设使用的是MySQL数据库:
第一步:首先将MySQL的驱动程序(例如:mysql-connector-java-bin.jar)考到james的lib目录下(例如:E:/james/lib)
第二步:在MySQL中新建一个数据库mail;
第三步:打开config.xml,找到<users-store>这一项,此面默认的内容为:
引用
<repository name="LocalUsers" class="org.apache.james.userrepository.UsersFileRepository">
<destination URL="file://var/users/"/>
</repository>
<destination URL="file://var/users/"/>
</repository>
将其注释掉
找到
引用
<!--
<repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/users">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
-->
<repository name="LocalUsers" class="org.apache.james.userrepository.JamesUsersJdbcRepository" destinationURL="db://maildb/users">
<sqlFile>file://conf/sqlResources.xml</sqlFile>
</repository>
-->
释放注释
其中users是存储用户信息的表名,可自定义。
通过修改,我们就把用户信息的存储介质从file改成了db,<sqlFile>是指明了在db中的数据表结构及相关数据库信息。
第四步:仍然是config.xml,找到<data-sources>项,默认内容为空。
这一部很重要,maildb这个数据源在很多地方用到。
找到:
引用
<!--
<data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.mysql.jdbc.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail?autoReconnect=true</dburl>
<user></user>
<password></password>
<max>20</max>
</data-source>
-->
<data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">
<driver>com.mysql.jdbc.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail?autoReconnect=true</dburl>
<user></user>
<password></password>
<max>20</max>
</data-source>
-->
释放注释,填写相应的用户明和密码。
mail是事先建好的数据库名(可任意取名)。
如果你的配置正确重新启动james。
james正常启动后,用telnet localhost 4555,进入管理界面,创建邮件帐号。
你将在mysql数据库中看到相应的数据。O(∩_∩)O~
六、用James收发邮件
现在我们来写两个简单的程序来体验一下如何使用James收发邮件。请注意,示例程序是通用的。
关于接受邮件部分,我们在代码中通过注释来描述。另外我们来回忆一下上述步骤配置James服务器的参数:
1.smtp 服务器:IP或者localhost 由于我James服务就装在我的机器上,所以我可以用localhost
2.两个邮件帐号:hx/hx
对应邮箱地址hx@myself.com
admin/admin
对应邮箱地址:admin@myself.com
注意:邮箱域名我们配置的是myself.com
示例程序:
import java.io.IOException; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Store; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; public class HelloJMail { //发送邮件 public static void sendMail() { //String host = "192.168.1.98"; // 指定的smtp服务器,本机的局域网IP String host = "localhost"; // 本机smtp服务器 //String host = "smtp.163.com"; // 163的smtp服务器 String from = "hx@myself.com"; // 邮件发送人的邮件地址 String to = "admin@myself.com"; // 邮件接收人的邮件地址 final String username = "hx"; //发件人的邮件帐户 final String password = "hx"; //发件人的邮件密码 // 创建Properties 对象 Properties props = System.getProperties(); // 添加smtp服务器属性 props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); // 创建邮件会话 Session session = Session.getDefaultInstance(props, new Authenticator(){ @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // 定义邮件信息 MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress( to)); //message.setSubject(transferChinese("我有自己的邮件服务器了")); message.setSubject("I hava my own mail server"); message.setText("From now, you have your own mail server, congratulation!"); // 发送消息 session.getTransport("smtp").send(message); //Transport.send(message); //也可以这样创建Transport对象发送 System.out.println("SendMail Process Over!"); } catch (MessagingException e) { e.printStackTrace(); } } //接受邮件 public static void getMail(){ String host = "localhost"; final String username = "hx"; final String password = "hx"; // 创建Properties 对象 Properties props = new Properties(); // 创建邮件会话 Session session = Session.getDefaultInstance(props, new Authenticator(){ @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // 获取邮箱的pop3存储 Store store = session.getStore("pop3"); store.connect(host, username, password); // 获取inbox文件 Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); //打开,打开后才能读取邮件信息 // 获取邮件消息 Message message[] = folder.getMessages(); for (int i=0, n=message.length; i<n; i++) { System.out.println(i + ": " + message[i].getFrom()[0] + "\t" + message[i].getSubject()); try { message[i].writeTo(System.out); } catch (IOException e) { e.printStackTrace(); } } // 关闭资源 folder.close(false); store.close(); } catch (MessagingException e) { e.printStackTrace(); } System.out.println("GetMail Process Over!"); } //邮件主题中文字符转换 public static String transferChinese(String strText){ try{ strText = MimeUtility.encodeText(new String(strText.getBytes(), "GB2312"), "GB2312", "B"); }catch(Exception ex){ ex.printStackTrace(); } return strText; } public static void main(String[] args) { HelloJMail.sendMail(); //HelloJMail.getMail(); } }
说明: 执行测试时,先执行发送,在main方法中注释掉邮件接受方法调用,等待片刻,再注释掉邮件发送方法调用,执行邮件接受方法调用。因为就算163这样优秀的企业级邮箱也不可能瞬间就能收到发送的邮件。 在邮件发送方法中:sendMail(), 可以尝试一下又本邮件服务器向163邮箱发送邮件,如果想通过163邮件服务器想本地发送邮件,你需要配置DSN。
以下为本机接收James邮件服务器提供服务的邮件结果:
该文件在 E:\james\apps\james\var\mail\inboxes\admin目录下
Return-Path: <hx@myself.com> Delivered-To: admin@myself.com Received: from localhost ([127.0.0.1]) by hdhr-hanxin (JAMES SMTP Server 2.3.1) with SMTP ID 499 for <admin@myself.com>; Mon, 11 May 2009 11:27:34 +0800 (CST) Date: Mon, 11 May 2009 11:27:34 +0800 (CST) Message-ID: <28380482.1242012454468.JavaMail.hdhr_hanxin@hdhr-hanxin> From: hx@myself.com To: admin@myself.com Subject: I hava my own mail server Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit From now, you have your own mail server, congratulation!
七、FAQ
1、在启动james时,提示POP3或SMTP不能使用?
请检查一下,看“管理工具—>服务”里面,是不是启动了别的邮件服务器,已将110或25端口占用了。
实例:
james前台直接运行时出错:
ERROR [Phoenix.] (): Component named "smtpserver" failed to pass through the Initialization stage. (Reason: Java.net.BindException: Address already in use: JVM_Bind).
ERROR [Phoenix.] (): There was an error running phase "startup" for Block named "smtpserver". (Reason: Component named "smtpserver" failed to pass through the Initialization stage. (Reason: Java.net.BindException: Address already in use: JVM_Bind).).
org.apache.excalibur.containerkit.lifecycle.LifecycleException: Component named "smtpserver" failed to pass through the Initialization stage. (Reason: Java.net.BindException: Address already in use: JVM_Bind).
原因:
james默认设置不允许在同一台机器上跑两个邮件服务器进程。必须关掉另一个!
检测方法:
console界面下:
d:> telnet 主机名 25(或110)
如果可以登录,出现
220 主机名 Microsoft ESMTP MAIL Service, Version: 6.0.2600.1106 ready at Thu,
25 Aug 2005 14:14:36 +0800
则说明此机器上已有一台邮件服务器在运行。
解决:
检查Windows上运行服务:
跨网传输电子邮件的服务Simple Mail Transfer Protocol (SMTP),是否启动
如启动关闭之!
2、 JAVA_HOME找不到?
请在run.bat中指定JAVA_HOME,若还不行,请在“我的电脑—>系统—>高级—>环境变量”中添加一项JAVA_HOME。
3、服务器启动正常,但客户端不能收发邮件?
请检查客户端配置是否正常,参照前面所讲,另外,请检查james下的config.xml,是否把localhost改成了机器名。
4、修改为数据库储存后,james启动出错:
一般是数据库驱动有错。检查一下
<data-source name="maildb" class="org.apache.james.util.mordred.JdbcDataSource">
<driver>org.gjt.mm.mysql.Driver</driver>
<dburl>jdbc:mysql://127.0.0.1/mail</dburl>
<user>root</user>
<password></password>
<max>20</max>
</data-source>
的<driver>org.gjt.mm.mysql.Driver</driver>是否对
发表评论
-
spring2.0+ehcache2.1.0配置
2021-02-03 09:43 1000记录使用ehcache时遇到的两个问题 一、原使用的是spr ... -
前端解决跨域问题的8种方案
2020-07-31 09:46 743前端解决跨域问题的8 ... -
浏览器拦截跨域请求处理方法
2020-07-31 09:37 1092引用在浏览器请求中,出现跨域访问资源的问题,我们肯定会遇到。如 ... -
iText pdf表格画斜线
2020-07-29 10:00 2265在使用iText输出pdf表格文件时,有时存在较复杂的报表样式 ... -
Java iText导出pdf功能实现
2020-07-29 09:58 761引用:http://www.anyrt.com/blog/li ... -
HTML5手机端拍照上传
2020-03-23 16:11 582HTML5手机端拍照上传 -
Java保留两位小数的几种做法
2020-03-20 10:03 5881. 使用java.math.BigDecimal 2. 使 ... -
下载文件中文文件名乱码问题(兼容浏览器)
2019-07-31 09:56 1160public void encodeFileName()thr ... -
JSP 页面中用绝对路径显示图片
2019-03-08 09:31 1503首先,图片和工程不在一个盘符下。图片也不能放到工程下。 在J ... -
在java中高效复制一个文件夹里面所有的内容
2018-05-24 16:00 756先看下传统的方法:利用字节流直接复制 public sta ... -
解决在IE下label中点击img图片无法选中radio的方案
2018-05-21 09:57 1023例如,这样的代码 <input type=" ... -
java POI 读写word docx文件的相关文章收藏
2018-04-30 12:20 966使用POI读写word docx文件 http://elim. ... -
java基础——Collections.sort的两种用法
2018-04-20 09:45 3285Collections是一个工具类,sort是其中的静态方法, ... -
Java设置session超时(失效)的时间
2018-04-20 12:25 1876在一般系统登录后,都会设置一个当前session失效的时间,以 ... -
65条最常用正则表达式
2017-08-18 14:07 714一、校验数字的表达式 ... -
【转】Java List 随机取记录
2015-09-21 09:55 4837在这对Java List中怎么随机取数做一个分享: 其实Li ... -
Cookie跨域操作
2015-08-25 14:21 715正常的cookie只能在一个 ... -
配置Tomcat使用https协议(配置SSL协议)
2015-08-25 11:03 573http://ln-ydc.iteye.com/blog/13 ... -
Java使用正则表达式获取文本的章节名称
2015-02-04 13:17 2206获取文本的章节,首先要确定章节的开始标准,一般中文的章节都是以 ... -
swf2pdf转swf时字符集问题 Internal error: No current splash fontinfo
2014-12-17 11:33 2590swf2pdf转swf时字符集问题 在转换过程中报错:比如 ...
相关推荐
需要注意的是,如果直接通过`apachejamesservice`命令停止服务,可能会导致服务出现异常关闭的情况,进而影响下次启动。正确的做法是在命令行窗口中使用`net stop`命令。 ##### 4. 简单测试 - **添加域名**:通过...
### Linux系统故障诊断与排除——James Kirkland #### 第1章 系统引导、启动和关闭问题 **1.1 引导加载程序** 引导加载程序(Boot Loader)是计算机开机后运行的第一段程序,其主要任务是把操作系统内核加载到...
通过持续收集数据并分析趋势,可以提前预测可能出现的问题,并采取措施避免其发生。 #### 构建监控框架 - **黑盒与白盒监控**:黑盒监控关注的是系统的外部行为,而白盒监控则侧重于系统的内部运作细节。两者各有...
而JAMES Earnware Connector的出现,进一步扩展了JAMES的功能,使其能够与 Earnware 平台进行深度整合,实现更复杂的业务流程。 Earnware平台可能是一个包含各种企业级服务的生态系统,如CRM(客户关系管理)、ERP...
Scipy的安装同样可能遇到网络问题,此时也可以通过.whl文件进行离线安装,如`scipy-1.4.1-cp38-none-win_amd64.whl`是适用于Python 3.8 64位的Scipy版本。 安装这两个库的步骤如下: 1. 首先,确保Python 3.8已经...
使用NBA勒布朗·詹姆斯(NBA Lebron James)提供的高质量照片来装饰您的Chrome背景。 我们将经常用新图像更新此扩展名。 勒布朗·詹姆斯NBA高清壁纸,美丽的壁纸等等,将让您的浏览体验每一天都丰富多彩而令人愉快!...
同时,对于可能出现的各种连接问题,文档提供了一份故障排查指南,帮助用户识别并解决常见的配置错误或兼容性问题。 ### ODBC在跨平台数据库访问中的作用 ODBC(Open Database Connectivity)作为一种开放的标准,...
除非用户明确安装或选择使用这些实验性的代码,否则不会受到这些变化的影响。若决定运行Edge Rails的实验性代码,则需要注意本书中某些内容以及现有Rails应用可能无法正常运行。可以通过在命令行中输入`rails -v`来...
然而,如果您决定运行这个实验性的 Rails 代码,您可能会发现书中的一些内容(以及您现有的 Rails 应用程序中的一些内容)可能不再运行。要确定您正在运行的 Rails 版本,可以在命令提示符下输入 `rails -v`。 ####...
10. **异常处理**:Java通过异常处理机制来管理程序运行时可能出现的问题。主要包括try、catch、finally等关键字。 #### 三、Java程序开发流程 1. **需求分析**:明确程序需要解决的具体问题和功能需求。 2. **...
Minecraft是一款沙盒建造游戏,玩家可以通过安装各种Mod来扩展游戏内容,而“乱码”可能指的是在安装或使用这些Mod时可能出现的字符显示问题。 在Java编程语言中,Minecraft模组的开发主要依赖于Forge和Fabric这样...
6. **异常处理**:Java使用try-catch-finally结构来捕获和处理程序运行时可能出现的错误,确保程序的健壮性。 文件名称“Assesement4-13.03.2021-master”暗示了这是一个项目仓库的主分支,可能包含以下内容: 1. *...
这个文件可能包含一个Java源代码,其中定义了`main`方法,以及可能的其他类和方法。开发者可能会在这里实现特定的功能或逻辑。源代码首先需要通过编译器转换成字节码(`.class`文件),然后由JVM解释执行。 4. **...
例如,假设我们有一个名为`Employees`的表,其中有一列`Name`,我们想找出所有名字包含“John”或“Jane”的员工,可以使用以下查询: ```sql SELECT * FROM Employees WHERE Name LIKE '%John%' OR Name LIKE '%...
Java通过try-catch-finally语句块来处理程序运行时可能出现的异常,提高程序的健壮性。 十、输入/输出(I/O) Java提供了丰富的I/O流类,支持文件操作、网络通信等。 十一、集合框架 Java集合框架包括List、Set、...
- **详细解析**:Java开发工具包(JDK)是开发Java应用程序所必需的软件包,其中包括Java编译器、Java虚拟机(JVM)以及标准类库等。用户可以访问Oracle官方网站或其他可信渠道下载最新版本的JDK。安装过程中需要...
我们使用 James S. Plank、Kevin M. Greenan 和 Ethan L. Miller 的 “Screaming Fast Galois Field Arithmetic Using Intel SIMD Instructions”论文来改进 Reed-Solomon码性能。也感谢 Artem Drobanov 和 Bulat...
8. **错误处理与调试**:在实际开发中,项目可能包含异常处理代码,以应对可能出现的错误情况,同时,良好的日志记录和调试工具也是必要的。 9. **文档和测试**:项目可能包含README文件或其他形式的文档,以指导...