小编Boz*_*zho的帖子

在哪里放置java applet策略文件?

我正在开发一个人工智能项目,这是一个逻辑游戏,目标是两个用户连接到网络上充当管理员的服务器,然后逐个开始玩.

为了创建连接,我有一个服务器代码,它只是在localhost:8000上监听,并在客户端到达时为其分配团队值.连接后,客户端可以在Admin的控制下进行移动.

问题是,当我尝试将我的代码放在浏览器中工作时,它失败并出现以下错误:

java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:8000 connect,resolve)
Run Code Online (Sandbox Code Playgroud)

即使我已经创建了自己的策略,首先只授予对我的项目文件夹(file:///home/xxx/projects/-)的代码库的Socket访问权限,在它不起作用后,我授予了所有代码库的所有权限.我尝试将我的策略文件放在主目录和我的applet代码所在的同一目录中.

感谢任何提示,谢谢.

java policy applet

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

Javassist:如何创建代理代理?

我正在用javassist创建代理ProxyFactory.创建单个代理时,一切正常.

但是,当我将代理对象传递给代理机制时,它会失败

javassist.bytecode.DuplicateMemberException:重复方法:com.mypackage.Bean中的setHandler _ $$ _ javassist_0 _ $$ _ javassist_1

我用这个创建代理:

public Object createProxiedInstance(Object originalInstance) throws Exception {
    Class<?> originalClass = instance.getClass();
    ProxyFactory factory = new ProxyFactory();

    factory.setSuperclass(originalClass);

    factory.setHandler(new MethodHandler() {..});
    Class<T> proxyClass = factory.createClass();

    return proxyClass.newInstance();
}
Run Code Online (Sandbox Code Playgroud)

那么,我如何创建代理的代理?

更新:实际问题是每个代理实现了ProxyObject定义setHandler(..)方法.所以第二个代理试图重新定义方法,而不是在子类中重写它.

java javassist

9
推荐指数
1
解决办法
2857
查看次数

java中的网络通信加密

我和朋友正在开发一个带有客户端/服务器架构的Java游戏.它运作良好,但我遇到了一个问题.我们使用TCP套接字在服务器和客户端之间建立联网.我们的网络协议没有加密,只能由不愿意观看流的人阅读.

我们考虑过如何应用某种加密技术来隐藏登录信息并阻止人们编写自己的客户端.但是添加/减少字节等基本内容似乎很容易理解.

用于加密游戏网络通信(或至少是游戏登录信息)的常用方法是什么?在java中编写服务器和客户端,是否有任何有用的Java库?

java security encryption networking

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

这是Mockito间谍的正确案例吗?

假设我有一堂课

class SomeClass
{
  public void methodA()
  {}

  public void methodB()
  {}

  public void someMethod()
  {
     methodA();
     methodB();
  }
}
Run Code Online (Sandbox Code Playgroud)

我想用Mockito测试someMethod()的行为.

我能想到的唯一方法是使用spy();

就像是

SomeClass someClass = spy(new SomeClass());
someClass.someMethod();
InOrder inOrder = inOrder(someClass);
inOrder.verify(someClass).methodA();
inOrder.verify(someClass).methodB();
Run Code Online (Sandbox Code Playgroud)

我是mockito的新手,文档说

"应该谨慎使用真正的间谍,例如在处理遗留代码时."

所以也许我错过了一些东西,并且有更好的(正确的)方法来验证methodA和methodB是否被调用而没有在测试用例中显式调用它们.

谢谢.

java unit-testing mockito

9
推荐指数
1
解决办法
6950
查看次数

为什么String.valueOf(null)导致空指针异常?

为什么String.valueOf(null)导致空指针异常?其中预期的行为是返回"null"字符串.

String x = null;
    System.out.println(String.valueOf(x));
Run Code Online (Sandbox Code Playgroud)

这给出了一个"null"字符串.但

System.out.println(String.valueOf(null));
Run Code Online (Sandbox Code Playgroud)

将导致空指针异常.

java

9
推荐指数
1
解决办法
2272
查看次数

9
推荐指数
3
解决办法
2373
查看次数

Java- Jersey,JAX RS

我有一些开发Java程序的经验.但是,我一直在努力理解一些基础知识,例如构成Java企业应用程序的所有不同组件.

例如,我实现了从J2ME应用程序中使用的基于RESTful和SOAP的Web服务,并为我的MSC执行了性能和成本测试.

为了开发基于RESTful/SOAP的Web服务,我在Netbeans中使用了向导功能.它使用JAX-RS来实现REST Web服务.然后我看到其他教程使用JAX-RS和Jersey等.我经常迷失在行话中,如API,应用程序框架,配置文件,Java版本等等.这里有几个问题

  1. JAX-RS是一个API.API基本上是用于在Java中实现某种形式的功能的库的集合吗?

  2. 根据他们的网站" Jersey是开源,生产质量,JAX-RS(JSR 311)参考实现,用于构建RESTful Web服务. "Jersey是另一个API还是与JAX-RS一起使用,并且它们之间的区别是什么他们俩?

  3. 我如何识别实际上我是否实现了这样的API并知道我是否需要它们?

当我决定实施RESTful Web服务时,我只是遵循Netbeans教程,向导提供了简单快速的开发时间.我知道使用向导因为它们很快并且能够完成工作.但是我想知道,当你被赋予代码任务时.您如何知道要使用的API,框架,附加组件等.什么版本的Java符合图书馆等.它只是我或你有时迷路吗?或者这会来自经验.

感谢您花时间阅读:)

java api jax-rs jersey

9
推荐指数
2
解决办法
2618
查看次数

在java中将字节数组转换为Blob的最简单方法

使用java编程语言在MYSQL中将字节数组转换为Blob数据类型的最简单方法是什么?

java mysql blob jdbc

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

Spring welcome-file-list正确映射

我知道在春天我必须定义welcome-file,它应该在WEB-INF文件夹之外,所以我这样定义:

web.xml中:

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>


<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

但实际上我的真实代码是在WEB-INF/jsp/contact.jsp中

所以我总是这样做:

<jsp:forward page="/index"></jsp:forward>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,这意味着:

@RequestMapping("/index")
public String listContacts(Map<String, Object> map) {

    map.put("contact", new Contact());
    map.put("contactList", contactService.listContact());

    return "contact";
}
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,欢迎文件总是进入我的索引映射,这导致contact.jsp?

如果这令人困惑,请随意提问...

java spring spring-mvc

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

如何标记方法必须?

假设你创建一个使用生成器模式的人一个类名,并假设生成器类包含的方法body(),head(),arms()当然build(),你考虑的方法head(),并build()为这个类的用户必须的.

我们想以某种方式标记这些方法是强制性的,如果可能的话使用注释.如果这个类的用户试图构建一个Person实例但是忘了调用这些方法中的任何一个,我们希望得到某种警告 - 无论是来自java编译器,还是来自我们用来构建我们的Eclipse或Maven项目 - 他们中的任何一个都可以.

有可能吗?你会建议哪种方式?

java annotations design-patterns builder

9
推荐指数
1
解决办法
1493
查看次数