标签: java-7

在Java Servlet中转发请求时的无限循环

我希望你能帮助我解决我面临的这个问题:

我使用NetBeans创建了一个简单的Web应用程序.截至目前,这是非常基本的.

  1. servlet接收/verificon/*url模式的请求.
  2. 它提取后面设置的任何字符串/verificon/,即如果网址是http://domain/context/verificon/blahblah,则提取blahblah.
  3. 它检查这样的字符串是否是已知字符串,并只显示带有结果的jsp(true/false).

但是,尽管很简单,但在使用测试字符串运行应用程序时出现以下错误:

javax.servlet.ServletException: 
The server side component of the HTTP Monitor has detected a java.lang.StackOverflowError.
This happens when there is an infinite loop in the web module.
Correct the cause of the infinite loop before running the web module again.

org.netbeans.modules.web.monitor.server.MonitorFilter.rethrow(MonitorFilter.java:1648)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:473)
mx.tegu.kdor.web.iu.ServletVerificon.processRequest(ServletVerificon.java:51)
mx.tegu.kdor.web.iu.ServletVerificon.doGet(ServletVerificon.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
mx.tegu.kdor.web.iu.ServletVerificon.processRequest(ServletVerificon.java:51)
mx.tegu.kdor.web.iu.ServletVerificon.doGet(ServletVerificon.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
mx.tegu.kdor.web.iu.ServletVerificon.processRequest(ServletVerificon.java:51)
mx.tegu.kdor.web.iu.ServletVerificon.doGet(ServletVerificon.java:70)
    ...
Run Code Online (Sandbox Code Playgroud)

然后它不断重复自己.

我的servlet的processRequest方法如下.TestData只是一个辅助类,Mapeo如果字符串已知或不null存在,则返回一个对象.

protected void processRequest(HttpServletRequest request, HttpServletResponse …
Run Code Online (Sandbox Code Playgroud)

servlets java-7 tomcat7

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

mac上的Java 7和JavaVM.framework

我在mac上玩了Java 7 update 9,发现了一件有趣的事情.

我刚刚运行了一个带有a的简单Java程序JFrame,并附加了它lldb.然后我检查了这个Java程序加载的库,我看到:

"/System/Library/Frameworks/JavaVM.framework/JavaVM" 在里面.

所以我有两个问题:

  1. 这个JavaVM为Java 7做了什么?我认为mac上的Java 7与Windows和Linux上的相应版本一样是自洽的.通过使用"nm",我可以看到这个JavaVM定义了很多函数,比如JNI_CreateJavaVM,它也在libjvm.dylib中定义.

  2. 我应该用Java 7链接到JNI库?还在JavaVM.framework吗?我可以链接到位于下面的库

    /Library/Java/JavaVirualMachine/jdk.1.7.0直接.

任何帮助都感激不尽.

java macos java-native-interface java-7

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

从Java 7迁移到Java 8 - 编译错误

以下代码在JDK7中使用javac编译两种测试方法,但JDK8只编译willCompile方法.

错误willNotcompile是:"类型中的方法method(Class<T>)Klasa不适用于参数(Class)."

@Test
public void willCompile() throws InstantiationException, IllegalAccessException {
    Class klass = getObject(Class.class);
    method(klass);
}

@Test
public void willNotCompile() throws InstantiationException, IllegalAccessException {
    method(getObject(Class.class));
}

<T> ResponseEntity<T> method (Class<T> klasa) {
    return new ResponseEntity<T>(HttpStatus.OK);
}
public static <T> T getObject(Class<T> clazz) throws IllegalAccessException, InstantiationException {
    return clazz.newInstance();
} 
Run Code Online (Sandbox Code Playgroud)

java java-7 java-8

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

Java 7精确的重新抛出和遗留代码

更精确的重新抛出允许编写抛出异常抛出的异常的代码:

   public void foo(String bar) throws FirstException, SecondException {
     try{
       // Code that may throw both FirstException and SecondException
     }
     catch (Exception e){
       throw e;
     }
   }
Run Code Online (Sandbox Code Playgroud)

在Java 7之前,你必须写:

   public void foo(String bar) throws Exception {
     try{
       // Code that may throw both FirstException and SecondException
     }
     catch (Exception e){
       throw e;
     }
   }
Run Code Online (Sandbox Code Playgroud)

我的问题:是否有一个工具允许检测不精确的投掷,以便用" Exception" 替换" FirstException, SecondException"?

到目前为止,我已经检查过Eclipse中没有编译器警告.FindBugs或CodePro中没有规则.

java exception rethrow java-7

6
推荐指数
1
解决办法
350
查看次数

Java 7的nio.file包在创建新文件时非常慢

我正在尝试从java程序创建300M文件,我从旧的文件API切换到新的java 7 nio包,但是新的包比旧的更慢.

我看到的CPU利用率低于使用旧文件API时的CPU利用率,但我正在运行这个简单的代码,我得到0.5Mbytes/sec的文件传输速率,而java的写入正在读取一个磁盘并写入另一个(写入是访问磁盘的唯一进程).

Files.write(FileSystems.getDefault().getPath(filePath), fiveToTenKBytes, StandardOpenOption.CREATE);
Run Code Online (Sandbox Code Playgroud)

有没有希望在这里获得合理的吞吐量?


更新:

我正在从大文件中解包3亿个5-10k字节的图像文件.我有3个磁盘,1个本地磁盘和2个SAN连接(大型文件的典型吞吐率约为20MB /秒).

我也尝试过这段代码,它将速度提高到不到2MB /秒的吞吐量(解压缩这些文件需要9天).

ByteBuffer byteBuffer = ByteBuffer.wrap(imageBinary, 0, (BytesWritable)value).getLength());
FileOutputStream fos = new FileOutputStream( imageFile );
fos.getChannel().write(byteBuffer);
fos.close();
Run Code Online (Sandbox Code Playgroud)

我从本地磁盘读取并写入SAN连接磁盘.我正在阅读Hadoop SequenceFile格式,hadoop通常能够使用基本相同的代码以20MB /秒的速度读取这些文件.

除了超级缓慢之外,唯一看起来不合适的是,我看到更多的读取IO比写入IO大约2:1,尽管序列文件是gziped(图像实际上比例为1:1),所以压缩文件应该是约.输出1:1.


第二次更新

看着iostat我看到一些奇怪的数字,我们在这里看xvdf,我有一个java进程读取xvdb和写入xvdf并且没有活动的ohter进程xvdf

iostat -d 30
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvdap1            1.37         5.60         4.13        168        124
xvdb             14.80       620.00         0.00      18600          0
xvdap3            0.00         0.00         0.00          0          0
xvdf            668.50      2638.40       282.27      79152       8468
xvdg           1052.70      3751.87      2315.47     112556      69464 …
Run Code Online (Sandbox Code Playgroud)

java file-io java-7 nio2

6
推荐指数
1
解决办法
1290
查看次数

获取给定文件夹下的所有绝对文件路径

我需要在内存中保存给定目录下的所有文件名绝对路径.

myDirectory.list() - 仅检索文件名的String [](没有它们的绝对路径).

不想使用文件对象,因为它消耗更多内存.

最后一件事 - 我可以使用apache集合等(但没有找到任何有用的东西).

java list absolute-path apache-commons java-7

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

没有print语句就不能执行代码

我一直在制作倒计时节目,我想出了这个.

package main;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Gatoo extends JFrame implements ActionListener {
    private int sec, min, secTot, since = 999;
    private long lastTime;

    private JTextField mm = new JTextField(2), ss = new JTextField(2);
    private JLabel minLab = new JLabel("Minutes:"), secLab = new JLabel(
            "Seconds:");
    private JButton start = new …
Run Code Online (Sandbox Code Playgroud)

java swing java-7

6
推荐指数
1
解决办法
952
查看次数

更改Java安全级别

Java 7 update 51具有java安全级别,默认情况下设置为HIGH.我想通过使用注册表或添加任何文件将其更改为中等.我观察到手动将安全级别从高级别更改为中级会创建注册表

[HKEY_CURRENT_USER\Software\JavaSoft\DeploymentProperties]
"deployment.security.level"="MEDIUM"
Run Code Online (Sandbox Code Playgroud)

但是,如果我手动创建上述注册表,则java安全设置不会更改,并且创建的注册表将被删除.所以我认为必须有其他文件来做到这一点.那么如何更改java安全设置呢?我看过一些文章和论坛链接,但没有得到我想要的.此外,这不是为我的客户设置安全级别,而是我的办公室,员工数量需要更改此设置(所有都是Windows操作系统),如果有代码或注册表项等自动化将很容易.

java windows security java-7

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

Eclipse Indigo for OS X Mavericks使用Java SE 7推出

我想在Mac OSX Mavericks上安装eclipe Indigo SR2,当我在终端中启动./eclipse时收到了这条消息:

警报:无法创建Java虚拟机

而在终端:

JavaVM: Failed to load JVM: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bundle/Libraries/libserver.dylib
JavaVM FATAL: Failed to load the jvm library.
Run Code Online (Sandbox Code Playgroud)

我在我的系统上有这个:

java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)

java-7 eclipse-indigo osx-mavericks

6
推荐指数
1
解决办法
1058
查看次数

在Windows 10中安装Netbeans的问题:在此计算机上找不到Java SE Development Kit(JDK)

我正在尝试在Windows 10上安装TMC Netbeans版本.我收到此错误:

在此计算机上找不到Java SE Development Kit(JDK)

使用TMC 1.1.8安装Netbeans需要JDK 7.确保已正确安装JDK并再次运行安装程序.您可以使用--javahome installer参数指定有效的JDK位置.

我使用常规版本的Netbeans得到了同样的错误.我知道它安装正确,因为我让IntelliJ工作得很好.我该如何解决这个问题?我一直在寻找答案,但我还没有为Windows 10找到任何东西?

另外,我安装了JDK 9.

java netbeans java-7 java-8

6
推荐指数
3
解决办法
4万
查看次数