我想从一个servlet获取我的Web应用程序的根URL.
如果我在"www.mydomain.com"中部署我的应用程序,我想获得像" http://www.mydomain.com " 这样的根URL .
如果我将它部署在具有8080端口的本地tomcat服务器中它应该给予同样的事情 http://localhost:8080/myapp
谁能告诉我如何从servlet获取我的Web应用程序的根URL?
public class MyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rootURL="";
//Code to get the URL where this servlet is deployed
}
}
Run Code Online (Sandbox Code Playgroud) 在我正在使用.ear打包的Java EE 6应用程序中,我想创建一个可以从不同.jar文件中的组件访问的持久性单元.
但是,我不确定如何定义此持久性单元.使用@PersistenceContext注释,如果名称与本地persistence.xml文件中定义的持久性单元匹配,则查找仅成功.
是否可以引用外部持久性单元?
可能重复:
从Java中的变量创建新类
我有一个字符串
String className = "DummyClass"
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个类对象,其中类名是className.就像这样
Object className = new className() // I know it's not possible.
Run Code Online (Sandbox Code Playgroud)
我想知道怎么做...
我来自Java SE背景,我做了一些servlet教程并阅读了Head First JSP和servlet.我正在阅读有关Async支持的JavaWorld.com文章,但我不太明白.
什么是异步是简单的?Ajax和Servlet Async有什么区别?
PS我有一个带有ajax的PHP背景,我知道这个概念,但我还没有用java试过
属性antiJARLocking是什么意思?当我把它变成真/假时有什么意义?
我在context.xmlweb-application文件中看到过这个属性:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/poll">
<Resource name="jdbc/PollDatasource" auth="Container"
type="javax.sql.DataSource"
// etc etc
</context>
Run Code Online (Sandbox Code Playgroud) 我打算学习Java EE,但我不知道从哪里开始.
基于Java EE版本历史记录,较低版本中存在技术,这些技术在较高版本中不可用.在学习Java EE 5或6之前,我是否需要学习J2EE 1.4?或者,学习最新版本是否更好,因为他们的目的是改进以前的版本.
您还可以在Java EE上建议一些资源吗?
我目前正在使用带有Spring插件和hibernate的Struts2开发一个Web应用程序,当我查看在线示例时,我看到了Service和DAO层的使用,现在我看到了Service和数据访问对象层的真正用途是什么?如果服务层只是调用DAO层的方法来执行CRUD操作.直接调用DAO图层方法是不明智的?
让我们说这个Dao和服务层的例子
PeopleService
@Transactional
public class PeopleService {
private PeopleDao pDao;
public PeopleDao getPDao() { return pDao; }
public void setPDao(PeopleDao peopleDao) { this.pDao = peopleDao; }
public void createPerson(String name){
pDao.createPerson(name);
}
public List<Person> getPeople(){
return pDao.getPeople();
}
}
Run Code Online (Sandbox Code Playgroud)
PeopleDao
public class PeopleDao {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Session sess() {
return sessionFactory.getCurrentSession();
}
public Person getPersonById(long id) {
return (Person) sess().load(Person.class, id);
}
public void deletePersonById(long id) {
sess().delete(getPersonById(id)); …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用spring数据JPA.我正在玩数百万条记录.我有一个要求,我必须获取各种表的数据并构建一个对象,然后在UI上绘制它.现在如何实现我的Spring数据存储库.我已经读过它可以通过命名本机查询来实现.
如果命名的本机查询未返回实体或实体列表,则可以使用@SqlResultSetMapping批注将查询结果映射到正确的返回类型.
但是,当我尝试使用@SqlResultSetMapping它时,正在采取另一个entityResult.意思是我理解的是它只是将一些查询结果转换为实体结果集,但我想要一个非实体对象的结果集.
@SqlResultSetMapping(
name="studentPercentile",
entities={
@EntityResult(
entityClass=CustomStudent.class,
fields={
@FieldResult(name="id", column="ID"),
@FieldResult(name="firstName", column="FIRST_NAME"),
@FieldResult(name="lastName", column="LAST_NAME")
}
)
}
)
@NamedNativeQuery(
name="findStudentPercentile",
query="SELECT * FROM STUDENT",
resultSetMapping="studentPercentile")
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我只是试图将学生实体的结果转化为另一个不是实体的pojo'CustomStudent '.(这个例子我试图只为POC目的执行,实际的用例很复杂,复杂的查询返回不同的结果集).
如何实现上述用例?除了使用名称查询之外还有其他方法我的存储库方法返回非实体对象吗?
我试图使用Spring和Java 8 JDK运行一个简单的JUnit测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
@WebAppConfiguration
public class UserServicesTest{
@Test
public void testJava8() {
Set<String> strings = new HashSet<>();
strings.add("a");
strings.add("b");
strings.add("c");
strings.stream().filter(a -> a.equals("a")).forEach(p -> p.toString());
}
Run Code Online (Sandbox Code Playgroud)
我在启动时遇到了这个运行时错误:
org.aspectj.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18
at org.aspectj.apache.bcel.classfile.Constant.readConstant(Constant.java:133)
at org.aspectj.apache.bcel.classfile.ConstantPool.<init>(ConstantPool.java:45)
at org.aspectj.apache.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:186)
at org.aspectj.apache.bcel.classfile.ClassParser.parse(ClassParser.java:131)
at org.aspectj.apache.bcel.util.NonCachingClassLoaderRepository.loadJavaClass(NonCachingClassLoaderRepository.java:262)
at org.aspectj.apache.bcel.util.NonCachingClassLoaderRepository.loadClass(NonCachingClassLoaderRepository.java:242)
at org.aspectj.apache.bcel.util.NonCachingClassLoaderRepository.loadClass(NonCachingClassLoaderRepository.java:249)
at org.aspectj.weaver.reflect.Java15AnnotationFinder.getAnnotations(Java15AnnotationFinder.java:202)
at org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl.unpackAnnotations(ReflectionBasedResolvedMemberImpl.java:211)
at org.aspectj.weaver.reflect.ReflectionBasedResolvedMemberImpl.hasAnnotation(ReflectionBasedResolvedMemberImpl.java:163)
at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:109)
at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:96)
at org.aspectj.weaver.patterns.AnnotationPointcut.matchInternal(AnnotationPointcut.java:156)
at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:137)
at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.getShadowMatch(PointcutExpressionImpl.java:239)
at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesExecution(PointcutExpressionImpl.java:105)
at org.aspectj.weaver.internal.tools.PointcutExpressionImpl.matchesMethodExecution(PointcutExpressionImpl.java:96)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.getShadowMatch(AspectJExpressionPointcut.java:404)
at org.springframework.aop.aspectj.AspectJExpressionPointcut.matches(AspectJExpressionPointcut.java:271)
at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:224)
at …Run Code Online (Sandbox Code Playgroud)