小编use*_*191的帖子

使用有状态会话bean和servlet

我正在尝试使用Glassfish Server(一个简单的购物车)的第一个EJB.我打算为每个Http Session使用CartBean.如果我的购物车豆跟随 -

public interface CartLocal {
 public void addItem(String item);
 public void removeItem(String item);
}

@Stateful
public class CartBean implements CartLocal {
 List<String> item = new java.util.ArrayList<String>();
 public void addItem(String item) {
  ....
 }
 public void removeItem(String item) {
  ....
 }
}
Run Code Online (Sandbox Code Playgroud)

我必须在web servlet客户端中使用上面的有状态会话bean,这样,对于每个新的Http Session,我们都会获得一个新的有状态会话bean.这样一个用户就有一个购物车.我的理解是错误的在servlet中使用会话bean,或者下面的代码是错误的,这为所有用户创建了一个有状态会话bean.

@EJB CartLocal cart;

protected void doGet(....) throws IOException...... {
 cart.addItem(....);
}
Run Code Online (Sandbox Code Playgroud)

ejb java-ee ejb-3.0

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

Java - 使用ECDSA创建XML数字签名(椭圆曲线)

我们可以使用RSA密钥创建XML数字签名.但是如何使用椭圆曲线键来签署xml文件?我收到错误消息,如 -

Exception in thread "main" java.security.KeyException: ECKeyValue not supported
    at org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.<init>(DOMKeyValue.java:350)
    at org.jcp.xml.dsig.internal.dom.DOMKeyInfoFactory.newKeyValue(DOMKeyInfoFactory.java:71)
    at csr.ExtractEC.main(XMLSignatureECTest.java:57)
Caused by: java.lang.ClassNotFoundException: sun/security/ec/ECParameters
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.getMethods(DOMKeyValue.java:367)
    at org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$1.run(DOMKeyValue.java:343)
    at org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC$1.run(DOMKeyValue.java:339)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.jcp.xml.dsig.internal.dom.DOMKeyValue$EC.<init>(DOMKeyValue.java:338)
    ... 2 more
Run Code Online (Sandbox Code Playgroud)

我用下面的代码创建了SignatureMethod和KeyInfo -

String url = "http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256";
        SignatureMethod signatureMethod = factory.newSignatureMethod(url, null);
        SignedInfo signedInfo = factory.newSignedInfo(c14n, signatureMethod, Collections.singletonList(reference));

        PrivateKey privateKey = Utils.generatePrivateEC("e:\\certs\\ec\\ec.key.p8");
        Certificate certificate = Utils.generatePublic("e:\\certs\\ec\\ec.cer");
        KeyInfoFactory keyInfoFactory = factory.getKeyInfoFactory();
        KeyValue keyValue = keyInfoFactory.newKeyValue(certificate.getPublicKey());
        KeyInfo keyInfo = keyInfoFactory.newKeyInfo(Collections.singletonList(keyValue));
Run Code Online (Sandbox Code Playgroud)

JDK - Oracle JDK …

java digital-signature elliptic-curve xml-dsig ecdsa

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

创建JAXB Context的JAXBException

当我将应用程序作为独立的Java程序运行时,它运行良好.当我将它作为applet运行时,它会抛出带有以下stacktrace的JAXBException.

javax.xml.bind.JAXBException: jaxb.properties in package com/test/package does not contain the javax.xml.bind.context.factory property.
    at javax.xml.bind.ContextFinder.find(Unknown Source)
    at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
    at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

当我添加一个jaxb.properties时,我收到以下错误 -

javax.xml.bind.JAXBException
 - with linked exception:
[java.lang.NoSuchMethodException: com.sun.xml.internal.ws.developer.JAXBContextFactory.createContext([Ljava.lang.Class;, java.util.Map)]
    at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
    at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
    at javax.xml.bind.ContextFinder.find(Unknown Source)
    at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
    at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我将以下jar添加到classpath中 -

  • JAXWS-RT-2.2.1
  • JSR311的API-1.1.1
  • 球衣核-1.2
  • 新泽西州的客户 - 1.2

导致此错误的原因.我错过了任何依赖项.

编辑:我在浏览器和开发环境中使用Java 7 u 59.

java applet jaxb java-web-start

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

Tesseract - 空间和标签中的歧义

我有一个tiff文件,其中包含一些由制表符分隔的文本(4个空格).但是当我从这个tiff图像文件中提取文本时,我总是在两列之间得到一个空格.示例示例:

TIFF IMAGE:
col-a    col-b    col-c

desired output:
col-a    col-b    col-c

but I am getting the following:
col-a col-b col-c
Run Code Online (Sandbox Code Playgroud)

我尝试使用相同格式的多个图像,但结果始终相同.我该如何解决这个问题?我可以训练tesseract来理解这个吗?

ocr tesseract

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

为什么我们使用字节来读取二进制数据

我们使用java原语'byte' fileInputStream.read(byte)等读取和写入二进制文件.在另一个例子中我们看到byte[] = String.getBytes().一个字节只是8位值.为什么我们byte[]用来读二进制文件?从文件或字符串读取后,字节值包含什么?

java

0
推荐指数
1
解决办法
237
查看次数