小编den*_*mus的帖子

在JAX-RS中等效的Servlet init()方法

我正在研究在Glassfish上运行的应用程序.我应该通过使用jax-rs和jersey将servlet转换为适当的restful内容.

我一直试图找到init()方法的解决方法,但直到现在我都失败了.

这是原始部分,使用servlet:

import javax.servlet.*

public void init(ServletConfig config) throws ServletException {
super.init(config);
 if (!isRunning() == true)) {
     /* Do some stuff here*/
 }

 logger.info("Deamon has started");
}
Run Code Online (Sandbox Code Playgroud)

而这个我试图使用jax-rs

import javax.ws.rs.*
import javax.servlet.*

public void init(@Context ServletConfig config) throws ServletException {
//uper.init(config);
if (!isRunning() == true)) {
  /* Do some stuff here*/
}

logger.info("Deamon has started");
}
Run Code Online (Sandbox Code Playgroud)

我检查过邮件列表并用Google搜索,但无法找到适用于此案例的方法.

任何想法如何使用servlet为init方法实现相同的行为?

java servlets glassfish jax-rs jersey

13
推荐指数
3
解决办法
2万
查看次数

带可选键的defrecord

我是一个完全新手的clojure并试图基本上遵循一些教程.我有一个关于defrecords 的问题.

这是我要做的事情:

(defrecord somemap [key1 key2 key3 key4])

(defn give-me-map [m1 m2]
  (somemap. m1 m2))
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我想拥有key3key4作为可选,这样我每次创建一个somemap对象时都不需要给它们赋值.

还有一个类似的问题在这里,但它的什么,我想在这里做反向.

那么可以defrecord用可选字段定义吗?

clojure

8
推荐指数
2
解决办法
1139
查看次数

过期时间未收到Google Play实时通知SUBSCRIPTION_EXPIRED

我正在尝试为应用程序的Android案例实现后端逻辑,并开始集成https://developer.android.com/google/play/billing/realtime_developer_notifications

在测试过程中,我可以得到SUBSCRIPTION_PUR​​CHASED,SUBSCRIPTION_RENEWED和SUBSCRIPTION_CANCELED,但是当到期时间到来时,我看不到任何SUBSCRIPTION_EXPIRED。根据文档SUBSCRIPTION_EXPIRED-订阅已过期,并且在SUBSCRIPTION_CANCELED之后,用户应保留订阅,直到他/她已支付的期限结束(即令牌验证响应的expiryTime)为止。

取消订阅后,是否应该根据具有令牌的到期时间信息终止我们这边的服务器,并针对不同情况发送SUBSCRIPTION_EXPIRED?

并且,如果“针对不同情况发送了SUBSCRIPTION_EXPIRED”是正确的,那么SUBSCRIPTION_EXPIRED通知的时间/情况是什么?

android in-app-purchase in-app-billing

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

使用setRollbackOnly的JMS和MDB

我有一个java类,它消耗来自队列的消息,向一些URL发送HTTP调用.我已经在谷歌和stackoverflow上进行了一些搜索(如果我错过任何提及该问题的消息来源,我真的很抱歉)但是找不到有关setRollbackOnly调用的详细信息.

我的问题是......如果我回滚,从队列中消耗的消息将阻塞队列的其余部分并将循环直到它成功处理或者它将在当前队列的末尾重新排队?

我用于从队列中消费并发送HTTP调用的代码如下所示,整个应用程序在Glassfish服务器上运行:

public class RequestSenderBean implements MessageListener
{
  @Resource
  private MessageDrivenContext mdbContext;

  public RequestSenderBean(){}

  public void onMessage(final Message message)
  {
    try
    {
      if(message instanceof ObjectMessage)
      {

          String responseOfCall=sendHttpPost(URL, PARAMS_FROM_MESSAGE);

          if(responseOfCall.startsWith("Success"))
          {
            //Everything is OK, do some stuff
          }
          else if(responseOfCall.startsWith("Failure"))
          {
            //Failure, do some other stuff
          }

    }
    catch(final Exception e)
    {
      e.printStackTrace();
      mdbContext.setRollbackOnly();
    }
  }
}

java jms glassfish message-driven-bean

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

锯齿无效的批次或签名

我最近开始使用Hyperledger Sawtooth进行播放,并且无法在java上提交事务,而python代码似乎没问题.

我已经在这里编写了基于api文档的python代码,然后尝试在java中编写一个.下面是java中的代码

import com.google.protobuf.ByteString;
import com.mashape.unirest.http.Unirest;
import sawtooth.sdk.processor.Utils;
import sawtooth.sdk.protobuf.*;

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.Signature;
import java.security.spec.ECGenParameterSpec;

public class BatchSender {

    public static void main(String[] args) throws Exception{


        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("EC");
        ECGenParameterSpec parameterSpec = new ECGenParameterSpec("secp256k1");

        keyPairGenerator.initialize(parameterSpec);

        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        Signature ecdsaSign = Signature.getInstance("SHA256withECDSA");

        ecdsaSign.initSign(keyPair.getPrivate());


        byte[] publicKeyBytes = keyPair.getPublic().getEncoded();
        String publicKeyHex = Utils.hash512(publicKeyBytes);

        ByteString publicKeyByteString = ByteString.copyFrom(new String(publicKeyBytes),"UTF-8");


        String payload = "{'key':1, 'value':'value comes here'}";
        String payloadBytes = Utils.hash512(payload.getBytes());

        ByteString payloadByteString  = …
Run Code Online (Sandbox Code Playgroud)

java blockchain java-security hyperledger hyperledger-sawtooth

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