首先让我说这是一个美学问题.我已经解决了自己的问题,我只是对更好的方法感到好奇.
所以,我有一个DN证书,如下所示:
CN = Jimmy Blooptoop,OU = Someplace,OU = Employees,DC = Bloopsoft-Inc
现在,我想从中获取CN.在java中,除了使用Xoun9证书中的完整DN而没有使用像bouncy castle这样的第三方库时,没有原生支持可以抓取任何东西 - 我无法使用它.所以我必须解析它,这不是什么大问题.唯一让它有点棘手的事实是CN并不总是被格式化为<first name> <last name>.通常情况下,它实际上会是<last name>, <first name> <middle initial>.所以,在上面的例子中,CN可能是Jimmy Blooptoop或Blooptoop,Jimmy J(当然是Joop的缩写).
在阅读了有关正则表达式的内容之后,我写了以下内容,它运作良好:
Matcher m = Pattern.compile("CN=[A-Za-z]*[, ]*[ A-Za-z]*").matcher(dn);
if (m.find())
cn = m.group();
Run Code Online (Sandbox Code Playgroud)
我只是好奇是否有看起来不像垃圾的表情.我非常有信心,因为我在阅读了正则表达式的介绍之后就已经解决了这个问题.
我有一个Web应用程序的间歇性问题,经常需要打开位于数据库服务器上的文件作为常规操作的一部分.在绝大多数情况下,这个功能没有问题,但是,在看似随机的时间,相应的请求开始返回HTTP 400错误.弹出apache服务器可以解决问题一段时间,但它总是在一天或最多一周内返回.
我在相关的pl/sql代码中添加了一些日志记录(不,不要跑掉!回来!),我在下面列出了以供参考:
declare
bl_blob blob;
bf_file bfile := bfilename(<directory that totally exists>, <file that totally exists>);
begin
dbms_lob.createTemporary(bl_blob, true);
dbms_lob.open(bf_file, dbms_lob.lob_readonly);
dbms_lob.open(bl_blob, dbms_lob.lob_readwrite);
dbms_lob.loadfromfile(bl_blob, bf_file, dbms_lob.getLength(bf_file));
dbms_lob.close(bf_file);
return bl_blob;
end;
Run Code Online (Sandbox Code Playgroud)
事实证明400错误对应于以下ORA-22288错误:
file or LOB operation FILEOPEN failed
The program issued a command but the command length is incorrect
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么操作会突然而且反复地开始错误输出以前同一个文件可以在没有问题的情况下打开?基础文件永远不会更改,只能以编程方式使用只读权限打开.
到目前为止我所做的所有论坛挖掘都产生了大量的"关闭和开启"解决方案,其中......是的.
任何帮助是极大的赞赏.
我正在使用RXTX从串口读取数据.读取是在以下列方式生成的线程内完成的:
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(port);
CommPort comm = portIdentifier.open("Whatever", 2000);
SerialPort serial = (SerialPort)comm;
...settings
Thread t = new Thread(new SerialReader(serial.getInputStream()));
t.start();
Run Code Online (Sandbox Code Playgroud)
SerialReader类实现Runnable并且只是无限循环,从端口读取并将数据构建到有用的包中,然后再将其发送到其他应用程序.但是,我把它简化为以下简单:
public void run() {
ReadableByteChannel byteChan = Channels.newChannel(in); //in = InputStream passed to SerialReader
ByteBuffer buffer = ByteBuffer.allocate(100);
while (true) {
try {
byteChan.read(buffer);
} catch (Exception e) {
System.out.println(e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当用户单击停止按钮时,将触发以下功能,理论上应关闭输入流并中断阻塞byteChan.read(缓冲区)调用.代码如下:
public void stop() {
t.interrupt();
serial.close();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此代码时,我从未得到ClosedByInterruptException,一旦输入流关闭,它应该触发.此外,执行阻止调用serial.close() - 因为底层输入流仍然在读取调用上阻塞.我已经尝试用byteChan.close()替换中断调用,然后应该导致AsynchronousCloseException,但是,我得到了相同的结果.
对我所缺少的任何帮助将不胜感激.
我一直在玩iReport(旧版本3.0.0)一段时间,我似乎无法找到一种方法来制作一个静态表,这看起来很傻,让我觉得我只是密集.有人能指出我正确的方向吗?目标是生成一个包含2列表的报表:segment#和segment name.对于每个报告,总会有20个细分,因此最终报告将如下所示:
| 1 | <segment name> |
| 2 | <segment name> |
...
| 20 | <segment name> |
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
给定一个指向Web服务器上托管的文件的URL,是否可以将该URL的内容读入clob?如果是这样,怎么样?
我有大量的javascript需要在被提供给最终用户之前进行最小化.目前,我正在使用JSMIN,但我想切换到更强大的功能(例如使用局部变量替换的东西).我现在正在看yahoo开发的YUI min,它让我想到了jquery使用的min工具.有谁知道它是什么以及它是否公开?另外,关于其他min工具的任何建议可能比YUI min更适合?如果可能的话,我想要一个java解决方案,所以我可以将库插入我已经为JSMIN解决方案创建的内容中.
谢谢
我需要能够确定用户是否通过JavaScript安装并启用了Java.第一个要求很容易完成,我正在使用部署工具包脚本:
http://download.oracle.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html
但是,在用户安装了Java但他们已禁用它的情况下(未在浏览器中禁用支持,但通过Windows中的java控制面板禁用),安装的版本仍会显示在调用中deployJava.getJREs().有没有办法检测使用JavaScript安装和启用的Java版本?
我在装有 IE 11 的 Windows 10 机器上安装了 JRE 8u211。我可以看到 Java 插件(和插件 2)已安装并启用。我在安全下选中了“允许活动内容在我的计算机上的文件中运行”选项。但是我无法加载 Java 小程序。每次加载页面时,我都会收到“您正在查看的页面使用 Java”通知,就好像浏览器认为我没有安装 Java。
我错过了什么?
我需要一种方法来克服Firefox的烦恼,拒绝传递使用输入文件元素选择的文件的完整路径.这个问题出现在其他多个论坛中,我没有找到任何有用的解决方案.
我想要的是通过javascript打开文件对话框(不使用愚蠢的"隐藏文件输入元素,你只需要点击"方法,因为这不能解决任何问题).然后,当用户选择文件时,我将完整路径存储在常规文本字段中.问题是:这是否可行?
如果没有,我不认为有人知道一个方便的地方找到调用javascript文件对象的所有属性和相关函数.例如
<input type="file" name="file_upload" onchange="alert(this.items.item(0).some_property)">
Run Code Online (Sandbox Code Playgroud)
我在这里找到了一个方便的列表,但我保持手指交叉,这里有一个与完整文件路径相对应的属性(我知道,我很有信心,我确定).无论如何,评论非常感谢(除非你告诉我不要抱怨Firefox无意修复的东西).