小编ray*_*man的帖子

如何远程访问Spring-boot JMX

我知道spring会自动暴露JMX bean.我能够使用VisualVM在本地访问它.

但是在prod上如何使用它的JMX bean远程连接到应用程序?是否有默认端口或我应该另外定义任何东西?

谢谢,雷.

spring jmx spring-boot

28
推荐指数
3
解决办法
5万
查看次数

找不到查询异常的实体

我正在执行以下行:

  String queString = "some query string"
  Query q1 = em.createNativeQuery(queString, T03CallsLog.class);
  T03CallsLog newCall;
  newCall = (T03CallsLog) q1.getSingleResult(); //this line cause the exception after         the first time
Run Code Online (Sandbox Code Playgroud)

奇怪的情况.如果我只用一个实例执行它就可以正常工作,但是如果我与多个实例(mdb)并行执行它,那么第一个实例执行没有任何异常,其余的都得到这个错误:

10:04:50,750 ERROR [log] ECMSDispatcherMdb.onMessage, error: No entity found for query
Run Code Online (Sandbox Code Playgroud)

什么可能导致它?以及它是如何在第一次工作,但对于所有其他实例它不是吗?

谢谢,

射线.

java jboss ejb jpa

23
推荐指数
2
解决办法
7万
查看次数

从Guava Cache中删除元素

我在用 import com.google.common.cache.Cache

我用这种方式启动了缓存:

private Cache<String,String> mycache =CacheBuilder.newBuilder()
   .concurrencyLevel(4).expireAfterAccess(30, TimeUnit.MINUTES).build();
Run Code Online (Sandbox Code Playgroud)

我愿意在等待到期之前在某些情况下手动删除条目.

我发现这样做的唯一方法是:

mycache.asMap().remove("somekey");
Run Code Online (Sandbox Code Playgroud)

我在问这是不是这样做的正确方法?我有什么问题吗?

java caching hashmap guava

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

从不同的包装发起活动

我在第一个包中有活动A,我想运行一个意图,它将启动一个活动B,它在第二个包中.

我怎样才能做到这一点?欢迎任何样品.

这就是我所做的,我得到的错误:

包中的第一个活动("MainActivity"):com.abelski.currencyclient和第二个活动(不同包中的"SecondActivity":com.idan.second

现在我想从MainActivity打电话给SecondActivity.

香港专业教育学院在MainActivity的清单中添加了这一行:

 <activity android:name="com.idan.second.SecondApplicationActivity"></activity>
Run Code Online (Sandbox Code Playgroud)

现在在主Activity中我得到了这个按钮来运行这一行:

Intent intent = new Intent(MainActivity.this,SecondApplicationActivity.class); 
Run Code Online (Sandbox Code Playgroud)

这就是恐怖:

04-29 09:20:59.197: ERROR/AndroidRuntime(399): Uncaught handler: thread main exiting due to uncaught exception
04-29 09:20:59.276: ERROR/AndroidRuntime(399): java.lang.NoClassDefFoundError: com.idan.second.SecondApplicationActivity
04-29 09:20:59.276: ERROR/AndroidRuntime(399):     
Run Code Online (Sandbox Code Playgroud)

android

15
推荐指数
2
解决办法
5万
查看次数

Geocoder.getFromLocation在Android模拟器上抛出IOException

使用Android模拟器2.2 api 8我不断收到IOException

03-05 19:42:11.073: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol
03-05 19:42:15.505: WARN/System.err(1823): java.io.IOException: Service not Available
Run Code Online (Sandbox Code Playgroud)

那是我的代码:

private LocationManager manager = null;
LocationListener locationListener = null;
double latitude = 0;
double longtitude = 0;
List<Address> myList = null;

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    // httpTranslateGet();
    try
    {


        manager = (LocationManager) this
                .getSystemService(Context.LOCATION_SERVICE);


        initLocationListener();

        manager.requestLocationUpdates(manager.GPS_PROVIDER, 0, 0,
                locationListener);

    }
    catch (Exception e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

private …
Run Code Online (Sandbox Code Playgroud)

android

15
推荐指数
2
解决办法
4万
查看次数

BroadcastReceiver或Messenger通过Handler

我有一个IntentService需要将消息传递给Activity.我知道有两种方法可以做到这一点.

  1. sendBroadcast()Service侧面使用,同时broadcastRecieverActivity接收消息的一侧注册.

  2. 传递Messenger到服务side,这将指向一个HandlerActivity一侧,这将是准备好接收来自服务该消息.

哪一个有利于哪个目的?或者两者都这样做?

android android-sdk-2.1 android-service

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

使用lambda的内联过滤避免意外的null

我有我想要这样做的每个元素的列表(使用Java 8):

disabledUsersOnLDAP.stream().forEach(user ->usersRepository.findEnabledByUsername(user.getUserName()).setEnabled(false));
Run Code Online (Sandbox Code Playgroud)

怎么usersRepository.findEnabledByUsername可能会返回null.当然,我可以这样做:

disabledUsersOnLDAP.stream().forEach(user -> {
            UserEntity userEntity = usersRepository.findEnabledByUsername(user.getUserName());
            {
                if (userEntity != null) {
                    userEntity.setEnabled(false);
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

但我想知道我是否可以进行内联空检查(在第一个选项中)?

java lambda java-8

15
推荐指数
2
解决办法
4万
查看次数

如何在运行并行作业时安全地将params从Tasklet传递到步骤

我试图安全地将params从tasklet传递到同一个工作中的一个步骤.

我的工作包括3个tasklet(第1步,第2步,第3步),最后是step4(处理器,读者,作者)

这项工作正在多次并行执行.

在tasklet里面的第一步我通过web服务评估param(hashId),而不是把它传遍整个链,直到我的读者(在第4步)

在第3步中,我创建了一个名为:filePath的新参数,该文件基于hashid,我将其作为文件资源位置发送到step4(读取器)

我正在使用stepExecution传递此参数(hashId和filePath).

我通过tasklet尝试了3种方法:

传递param(hash1d从step1进入step2,从step2进入步骤3)我这样做:

chunkContext.getStepContext()
        .getStepExecution()
        .getExecutionContext()
        .put("hashId", hashId);
Run Code Online (Sandbox Code Playgroud)

在步骤4中,我基于hashId填充filePath并将其传递给我的最后一步(读者处理器和编写器)

public class DownloadFileTasklet implements Tasklet, StepExecutionListener {
..

    @Override
     public RepeatStatus execute(ChunkContext chunkContext, ExecutionContext    
     executionContext) throws IOException {

    String hashId = chunkContext.getStepContext().getStepExecution().getJobExecution().getExecutionContext().get("hashId");

          ...

filepath="...hashId.csv";
//I used here executionContextPromotionListener in order to promote those keys

        chunkContext.getStepContext()
        .getStepExecution()
        .getExecutionContext()
        .put("filePath", filePath);
    } 

logger.info("filePath + "for hashId=" + hashId);

}
@Override
public void beforeStep(StepExecution stepExecution) {
    this.stepExecution = stepExecution;
}
Run Code Online (Sandbox Code Playgroud)

请注意我在完成该步骤之前打印hashId和filePath值(步骤3).通过日志,它们是按照预期一致和填充的

我还在我的读者中添加了日志,以查看我得到的参数.

@Bean
    @StepScope
    public ItemStreamReader<MyDTO> reader(@Value("#{jobExecutionContext[filePath]}") String filePath) …
Run Code Online (Sandbox Code Playgroud)

java spring multithreading spring-batch-admin

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

处理程序与线程

我想知道,一劳永逸.我在很多地方读过.当我想做一些"长时间操作"时,我应该使用一个Handler.

但我不明白为什么?所有我的'长时间操作'我用常规线程包围,它工作正常.

我为什么要用Handler它呢?

我必须使用的唯一一次Handler是,当我不得不安排一些任务时(postDelayed)

有什么我想念的主要想法handlers(当我真的应该使用它时)?或者也许没有真正的区别?

android handler

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

添加Overlay到OSMDROID

这段时间我一直在苦苦挣扎.我想在我的地图上添加叠加层.我正在使用开源OSMdroid.但我得到的例子是从一个角落到另一个角落的直线红线.我的目标是在我的geoPoint设置中添加一些图标.

这是我的代码:

 package osmdemo.demo;

import java.util.List;

import microsoft.mappoint.TileSystem;

import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import org.osmdroid.views.MapView.Projection;
import org.osmdroid.views.overlay.Overlay;
import org.osmdroid.views.overlay.ScaleBarOverlay;
import org.osmdroid.views.util.constants.MapViewConstants;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Rect;
import android.location.LocationManager;
import android.os.Bundle;

public class map extends Activity implements MapViewConstants
{

    /** Called when the activity is first created. */

    protected static final String PROVIDER_NAME = LocationManager.GPS_PROVIDER;
    MapController mapController;
    MapView mapView;
    ScaleBarOverlay mScaleBarOverlay;
    private MapOverlay mmapOverlay = null;
    private LocationManager mLocMgr; …
Run Code Online (Sandbox Code Playgroud)

android openstreetmap android-maps osmdroid

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