我在Eclipse项目中创建了一个简单的"HelloWorld"servlet.我把它构建成一个WAR,将它部署在我的Tomcat 7.0本地服务器中,一个简单的请求 localhost/HelloWorld/sayhello 打印"HELLO"没有火箭科学.因此,在关于如何部署WAR的AWS文档之后,我将转到Beanstalk管理控制台并看到消息"您没有启动任何AWS Elastic Beanstalk应用程序",因此我单击Tomcat 7 - > start,然后上载我的WAR.上传完成后,AWS告诉我它现在正在运行,我点击"查看运行版本",然后打开default-environment-zhqv8mwsqw.elasticbeanstalk.com
我尝试的链接,
default-environment-zhqv8mwsqw.elasticbeanstalk.com/HelloWorld/sayhello
但是我得到了一个404.我错过了什么或者有什么我可以检查的吗?如何明确告诉AWS使用32位JVM?
这是我的代码失败(它在一个活动中运行,数据库助手在数据库中创建了WishList对象)
DatabaseHelper helper = DatabaseHelper.getInstance( getActivity() );
int savedID = 0;
WishList wl = new WishList();
wl.setName("abc");
try {
savedID = helper.getWishListDao().create(wl);
WishList wl_saved = helper.getWishListDao().queryForId( savedID );
wl_saved.getId();
} catch (SQLException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这是我的实体.ID字段是自动生成的.
@DatabaseTable
public class WishList {
@DatabaseField(generatedId = true)
private int id;
@DatabaseField( canBeNull = false , unique = true )
private String name;
@ForeignCollectionField
private ForeignCollection<WishItem> items;
...
Run Code Online (Sandbox Code Playgroud)
有什么问题,数据库中生成的ID与ORMlite在下面的调用中返回的ID不同.它返回1.
savedID = helper.getWishListDao().create(wl);
Run Code Online (Sandbox Code Playgroud)
数据库中的ID实际上是37.任何想法我可能做错了什么?使用版本4.41
我想编写一个单元测试,基本上验证我添加到外部集合的对象实际上是在DAO保存检索对象时正确保存和检索的.这是我的实体.
@DatabaseTable
public class Question implements Question, Serializable {
@DatabaseField
private String questionText;
@ForeignCollectionField
private ForeignCollection<Answer> answers;
public void addAnswer(Answer answer) {
answers.add(answer);
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是创建一个Question实例添加一个Answer对象到集合并传递Question给我的DAO,它将持久化它.持久性在常规字段上工作正常,所以我知道那里没有问题.
如何添加Answer到集合中?当我创建Question它的答案时,集合为空.这是我必须保存新的Question然后检索它以便答案集合非空?或者,我是否设置了BaseCollection,LazyCollection实例的答案?
我有一个实体,其中包含一个带有getter和setter的ForeignCollection
public class TextQuestion{
@ForeignCollectionField
private ForeignCollection<TextAnswer> answers;
....
Run Code Online (Sandbox Code Playgroud)
我有一个封装DAO的Servicer包装器类
public class TextQuestionService
{
private static TextQuestionService instance;
private static Dao<TextQuestion, Integer> textQuestionDAO;
private static DatabaseHelper dbHelper = new DatabaseHelper();
public void addAnswer( TextQuestion textQuestion, TextAnswer answer )
{
List<Answer> answers = (List)textQuestion.getAnswers();
if( answers == null )
{
try
{
answers = (List)textQuestionDAO.getEmptyForeignCollection("answers");
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
answers.add(answer);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何通过Wrapper服务类添加,删除此集合中的项目?上面是我的努力,但我刚刚完全丢失,将集合转换为列表等.问题是当我想添加一个问题的答案ForeignCollection如果Answers集合不是null但是我想构建提问,在坚持之前添加答案.从前一个问题我明白,如果尚未从数据库中检索父级,我需要调用getEmptyForeignCollection.必须有一个简单的方法来做到这一点?任何工作类似的例子都会很好
我有一个Question包含Answer对象列表的类.在我的POJO中,我在我的Question类中表示为:
@ForeignCollectionField
private ForeignCollection<Answer> answers;
Run Code Online (Sandbox Code Playgroud)
在我的Answer类中,这种关系被声明为:
@DatabaseField(foreign = true, canBeNull=false)
private Question question;
Run Code Online (Sandbox Code Playgroud)
我原本以为如果我试图坚持Answer引用Question尚未持久存储到数据库的ORMlite会抛出异常.但是,这似乎不会发生.我可以保留Answer对象,而不保存引用的Question对象.我Answer通过查看我的数据库验证了s正在保存,没有任何问题被保存SQLliteBrowser.这会破坏我的数据完整性,因为当我重新启动程序时,db现在包含引用不存在问题的Answers.
有没有办法强制执行此操作?根据我在Hibernate方面的经验,如果不先保存引用的"父"对象,它将不允许您保存Child对象.
在IntelliJ中,如果我想配置我的ANT脚本使用的Java版本,我可以右键单击并设置ANT的正确选项并选择我想要使用的JDK.在Eclipse中我没有看到任何这样的选项.我是否需要将Java版本硬编码到我的脚本中,或者有什么方法可以告诉ANT我希望它使用哪个版本?
我有2个活动,第一个是启动,其中创建方法导致第二个活动始终启动.我的Robolectric测试通过了
活动
public class LoginActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loginview);
Intent intent = new Intent(this,MainActivity.class);
startActivity( intent );
}
Run Code Online (Sandbox Code Playgroud)
我知道我的活动很好,因为它在我的设备和模拟器上启动
我的Robolectric测试
public void testLoginFirstTime() throws Exception
{
LoginActivity activity = new LoginActivity();
activity.onCreate(null);
assertThat(activity, new StartedMatcher(MainActivity.class));
}
Run Code Online (Sandbox Code Playgroud)
我的机器人测试
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
public void testLoginFirstTime() throws Exception
{
solo.assertCurrentActivity("Expected MainActivity to launch", MainActivity.class);
}
Run Code Online (Sandbox Code Playgroud)
我的机器人断言有什么问题?它总是认为当前的活动是登录的,即使我看到模拟器/设备我可以看到Robotium确实启动了MainActivity,但似乎并不知道新活动已经启动.编辑:我想说如果我在登录视图中添加一个按钮并通过按钮点击启动新的激活,则Robotium会执行点击并检测到新活动已启动.
编辑:看起来像是一个Robotium限制 http://groups.google.com/group/robotium-developers/browse_thread/thread/79a70038c16e35e6 …
对于较新的编译器,我发现自己试图编写更容易阅读的代码,但如果我希望在引擎盖下完成的优化实际上没有完成,那么可能需要更多的内存.以此代码为例,非常简单
while (scanner.hasNextLine() && !result)
{
String line = scanner.nextLine();
result = line.indexOf(searchString) >= 0;
}
Run Code Online (Sandbox Code Playgroud)
假设(使用Eclipse Juno,Java 7)这将产生与之相同的字节代码是否公平
while (scanner.hasNextLine() && !result)
{
result = scanner.nextLine().indexOf(searchString) >= 0;
}
Run Code Online (Sandbox Code Playgroud)
前者虽然2行代码减少了第二行的长度并使其更容易在眼睛上.恕我直言但它是否也会导致创建一个无关的String对象?我希望不是 ...
研究移动应用程序开发并尝试了解那里的技术.这两件事适合哪些,mgwt和gwt-phonegap,它们是竞争技术/框架还是相互赞美.它们在开发周期中适合哪些方面?
如何以编程方式设置标签中文本的颜色.这是我最近的尝试.
public void setFontColour(String colour )
{
label.getElement().getStyle().setFontStyle( Style.FontStyle.valueOf("bluetext") );
}
Run Code Online (Sandbox Code Playgroud)
我只是想调用setColour方法,但我谷歌试图通过CSS做到这一点.在这个例子中,我想通过Java设置它.
谢谢