我知道spring会自动暴露JMX bean.我能够使用VisualVM在本地访问它.
但是在prod上如何使用它的JMX bean远程连接到应用程序?是否有默认端口或我应该另外定义任何东西?
谢谢,雷.
我正在执行以下行:
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)
什么可能导致它?以及它是如何在第一次工作,但对于所有其他实例它不是吗?
谢谢,
射线.
我在用 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)
我在问这是不是这样做的正确方法?我有什么问题吗?
我在第一个包中有活动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模拟器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) 我有一个IntentService需要将消息传递给Activity.我知道有两种方法可以做到这一点.
sendBroadcast()在Service侧面使用,同时broadcastReciever在Activity接收消息的一侧注册.
传递Messenger到服务side,这将指向一个Handler在Activity一侧,这将是准备好接收来自服务该消息.
哪一个有利于哪个目的?或者两者都这样做?
我有我想要这样做的每个元素的列表(使用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)
但我想知道我是否可以进行内联空检查(在第一个选项中)?
我试图安全地将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) 我想知道,一劳永逸.我在很多地方读过.当我想做一些"长时间操作"时,我应该使用一个Handler.
但我不明白为什么?所有我的'长时间操作'我用常规线程包围,它工作正常.
我为什么要用Handler它呢?
我必须使用的唯一一次Handler是,当我不得不安排一些任务时(postDelayed)
有什么我想念的主要想法handlers(当我真的应该使用它时)?或者也许没有真正的区别?
这段时间我一直在苦苦挣扎.我想在我的地图上添加叠加层.我正在使用开源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)