我正在谷歌应用引擎上制作我的第一个应用.在我检查我的应用程序的正确结果之前.但后来我的应用程序开始响应很晚.然后我通过谷歌应用程序引擎文档,现在开始使用appstats.我真的很陌生.我看了一段关于它的视频并得到了一些东西,但我仍然有点困惑.以下是我的应用中一个登录请求的图表:

以下是我的LoginCheckServlet的代码:
public class LoginCheckServlet extends HttpServlet {
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
HttpSession session = req.getSession(true);
PersistenceManager pm = PMF.get().getPersistenceManager();
try
{
List<User> result = null;
Query query = pm.newQuery(User.class);
query.setFilter("email == emailParam");
query.declareParameters("String emailParam");
result = (List<User>) query.execute(req.getParameter("email"));
if(result.size() == 0){
out.println(0);
}else{
String pwd = req.getParameter("password");
String userPwd = result.get(0).getPassword();
if(pwd.equals(userPwd)){
result.get(0).setActive(true);
session.setAttribute("email", result.get(0).getEmail());
session.setAttribute("name", result.get(0).getName());
out.println("1");
}else{
out.println("2");
}
}
}catch(Exception ex)
{
out.println(ex);
}
finally …Run Code Online (Sandbox Code Playgroud) I\xc2\xb4m 在使用 Mockito 创建测试时遇到一些麻烦。在使用 Eclipse 进行调试期间,我得到了一个nullfrom Restrictions.eq,我完成了创建静态模拟的每一步Restrictions:
@RunWith(PowerMockRunner.class)\n@PrepareForTest({ RequisicaoList.class, StatusMessages.class,\n FacesMessages.class, Restrictions.class })\npublic class RequisicaoListTest {\n\n...\n\n@SuppressWarnings("unchecked")\npublic String criteriaContigencia() {\n Criteria criteria = criarCriteria(Requisicao.class);\n\n criteria.createAlias("produto", "prod"); \n criteria.add(Restrictions.eq("prod.ar",arSelecionada));\n\n if (getExemplo().getNrProtocolo() != null)\n criteria.add(Restrictions.eq("nrProtocolo", getExemplo()\n .getNrProtocolo()));\n\n situacoesPesquisa.clear();\n situacoesPesquisa.add(SituacaoRequisicao.PENDENTE_PAGAMENTO);\n situacoesPesquisa.add(SituacaoRequisicao.PENDENTE_AGENDAMENTO);\n if (!situacoesPesquisa.isEmpty()) {\n criteria.add(Restrictions.in("situacao", situacoesPesquisa));\n } \n\n if (getExemplo().getResponsavel() != null && StringUtils.isNotBlank(getExemplo().getResponsavel().getCpf())) {\n criteria = criteria.createCriteria("responsavel");\n criteria = criteria.add(Restrictions.eq("cpf", getExemplo().getResponsavel().getCpf()));\n }\n\n resultado = Collections.checkedList(criteria.list(),Requisicao.class);\n\n return null;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我的代码将 ManagedBean 与持久层混合,我可以\xc2\xb4t 更改它,但我必须为该项目创建测试。
\n\n这里的问题是模拟
\n\nRestrictions.eq("cpf", getExemplo().getResponsavel().getCpf())\n …Run Code Online (Sandbox Code Playgroud) 我创建了一个扩展CrudRepository的Repository,这个存储库有一个带@Query符号的方法:
码:
@Query("select itemType, count(*) as count from Item where User_id = :userId group by itemType")
List<Map<String, Long>> countItemsForUser(@Param("userId") Long userId);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是返回一个Object的ArrayList而不是Map的List.我已经读过JPA无法返回Map的地方,这就是我将结果填入List>的原因.
我不知道解决此问题或快速访问结果数据的最佳方法是什么.我已经尝试过铸造,但这也没有成功:
for(Object item: items) {
Map<String,Long> castedItem = (HashMap<String,Long>)item;
}
Run Code Online (Sandbox Code Playgroud) 我在我的数据库中有多对多的关系,我正在使用Hibernate从关系的左侧检索单行.然后我只是调用getter方法来检索关系的右侧(lazy fetch).
作为我工作的一部分,我需要通过执行以下操作对右侧"列表"对象进行排序:
Collections.sort(list);
Run Code Online (Sandbox Code Playgroud)
当我完成工作时,我正在打电话:
session.getTransaction().commitTransaction();
Run Code Online (Sandbox Code Playgroud)
即使我没有在数据库中实际更改任何内容,我可以在日志中看到一些INSERT语句被触发.
在这种情况下我应该做什么,以便我可以在不引起数据库命中的情况下订购列表?
我有一个实现Serializable的实体类,我在客户端上遇到了这个错误:
javax.naming.CommunicationException:SerialContext的通信异常[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.url.pkgs = com.sun.enterprise.命名,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl} [根异常是java.rmi.MarshalException:CORBA BAD_PARAM 1398079494也许; 嵌套异常是:java.io.NotSerializableException:---------- BEGIN服务器端堆栈跟踪---------- org.omg.CORBA.BAD_PARAM:警告:IOP00100006:Class com .sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate不是Serializable vmcid:SUN次要代码:6完成:也许
当我在做的时候 SomeService serv = (SomeService)ctx.lookup("java:global/MyProject/SomeServiceImpl");
Entity类应该在服务器和客户端都在同一个包中吗?现在,Entity类位于Client App的包(dir)中,并且位于服务器上SomeService接口所在的包(dir)中.
在QueryDSL库中,com.mysema.query.types.expr.SimpleExpression<T>该类有一个SimpleExpression.in(CollectionExpression<?, ? extends T>)方法,该方法应该采用一个应该返回集合的表达式.但是我找不到创建类型对象的方法com.mysema.query.types.CollectionExpression<?, ? extends T>.
我的查询表达式如下所示:
QEvent.event.organization.in(expression)
Run Code Online (Sandbox Code Playgroud)
在哪里我希望它expression是这样的:
QOrganization.organization.country.in("India", "USA")
Run Code Online (Sandbox Code Playgroud)
但第二个表达式是类型com.mysema.query.types.expr.BooleanExpression,我无法找到将其转换为的方法com.mysema.query.types.CollectionExpression<?, ? extends T>.
我查看了QueryDSL API文档但找不到任何相关内容.
我们的客户希望将记录标记为已删除,而不是删除记录.我们正在使用JPA2/Hibernate.我想做类似以下的事情:
@Entity
@Table(name="TABLE")
@ActionOverride(action="delete", with="activeFlag = false")
public class Table {
@Column(name="ACTIVE_FLAG")
boolean activeFlag;
// ...
}
Run Code Online (Sandbox Code Playgroud)
我过去做过这个,但我似乎无法找到正确的语法和注释.
我正在服务/存储库方法的第一次破解,并遇到了一个问题.基本上我想在我的服务中做的是保持我的实体,然后在同一个Service方法中使用它的ID.
最初我打算使用@GeneratedValue和Sequences,但放弃并决定手动刷新实体并获取ID,我认为这会更容易.
My Repository是一个使用Spring Data的接口,因此它支持手动刷新.据我了解,它也用@Transactional注释.我的服务方法也使用@Transactional注释.
我发现实体仅在返回Service方法时持久化,即使我在保存实体后立即刷新(或使用saveAndFlush).我认为冲洗会迫使数据库发生变化吗?
我想用ManagedBean在我的Converter.该ManagedBean负责从数据库中获取数据.在Converter我想字符串转换成对象必须是从数据库中获取.
这是我的转换器
@FacesConverter(forClass=Gallery.class, value="galleryConverter")
public class GalleryConverter implements Converter {
// of course this one is null
@ManagedProperty(value="#{galleryContainer}")
private GalleryContainer galleryContainer;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String galleryId) {
return galleryContainer.findGallery(galleryId);
...
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object gallery) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这galleryContainer将是无效的,如果我要注入ManagedBean到Converter我可以将其标记为ManagedBean过.问题是我想以漂亮的方式做到这一点,我不想寻找一些"奇怪的解决方案".也许问题出在我的申请表中?也许有一些其他好的解决方案来创建必须从数据库获取数据并在转换器中使用的对象?我还想提一下,我宁愿使用DependencyInjection而不是使用new语句创建新对象(它更容易测试和维护).有什么建议?
我正在尝试使用 JSF、JPA、Spring 构建一个项目,但无法成功。我使用 JBoss 作为我的服务器。没有显示任何错误,但显示 404 错误。有趣的是,当我使用 Tomcat 时,控制台很清晰,但在加载页面上显示,
错误解析/index.xhtml:不支持设置属性http://xml.org/sax/properties/lexical-handler
这是完整的堆栈跟踪
javax.faces.view.facelets.FaceletException: Error Parsing /index.xhtml: not supported setting property http://xml.org/sax/properties/lexical-handler
at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:425)
at com.sun.faces.facelets.compiler.SAXCompiler.doMetadataCompile(SAXCompiler.java:408)
at com.sun.faces.facelets.compiler.Compiler.metadataCompile(Compiler.java:130)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.createMetadataFacelet(DefaultFaceletFactory.java:327)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$200(DefaultFaceletFactory.java:93)
at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:166)
at com.sun.faces.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:164)
at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:94)
at com.sun.faces.facelets.impl.DefaultFaceletCache$2.newInstance(DefaultFaceletCache.java:89)
at com.sun.faces.util.ExpiringConcurrentCache$1.call(ExpiringConcurrentCache.java:99)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at com.sun.faces.util.ExpiringConcurrentCache.get(ExpiringConcurrentCache.java:114)
at com.sun.faces.facelets.impl.DefaultFaceletCache.getViewMetadataFacelet(DefaultFaceletCache.java:143)
at com.sun.faces.facelets.impl.DefaultFaceletCache.getViewMetadataFacelet(DefaultFaceletCache.java:62)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:260)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.getMetadataFacelet(DefaultFaceletFactory.java:209)
at com.sun.faces.application.view.ViewMetadataImpl.createMetadataView(ViewMetadataImpl.java:114)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:233)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at …Run Code Online (Sandbox Code Playgroud)