了解servlet容器

作为UI devloper和Java知识非常有限的人,我如何理解servlet容器到底是什么? 我听说过Weblogic,JBoss等是servlet容器,但不确定这究竟意味着什么。 这是否意味着任何中间件技术? 你可以帮我吗。

将图片从Android上传到PHP服务器

我试图从我的Android设备上传文件到PHP服务器。 有相同问题的线程,但他使用不同的方法。 我的Android端代码工作正常,没有显示错误消息,但服务器没有收到任何文件。 这是我的示例代码,我在网上找到了它。 import java.io.FileInputStream; import android.app.Activity; import android.os.Bundle; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.util.Log; public class uploadfile extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); doFileUpload(); } private void doFileUpload(){ HttpURLConnection […]

扩展java.lang.String

java.lang.String被声明为final,但有没有合法的机制或以其他方式扩展它并替换equals(String other)方法?

易变量和其他变量

以下是来自经典Concurency in Practice : 当线程A写入volatile变量并且随后线程B读取相同的变量时,在写入volatile变量之前A可见的所有变量的值在读取volatile变量后变为B可见。 我不确定我是否真的能理解这句话。 例如,在这种情况下所有变量的含义是什么? 这是否意味着使用volatile也会对非易失性变量的使用产生副作用? 在我看来,这句话有一些我无法理解的微妙含义。 有帮助吗?

尽管有足够的可用内存,但巨大的数组会丢失内存

使用-Xmx1G标志提供1千兆字节的堆,以下按预期工作: public class Biggy { public static void main(String[] args) { int[] array = new int[150 * 1000 * 1000]; } } 该数组应代表约600 MB。 但是,以下抛出OutOfMemoryError: public class Biggy { public static void main(String[] args) { int[] array = new int[200 * 1000 * 1000]; } } 尽管arrays应该代表大约800 MB,因此很容易适合内存。 丢失的记忆在哪里消失了?

将信号发送到正在运行的JVM

我正在使用自定义信号处理程序来捕获自定义Java守护程序中的TERM,ABRT和INT信号。 我在代码中有这个处理程序,以便我可以向它发送TERM信号并通过kill命令正常关闭程序。 信号处理程序现在正常工作,但是当我编译代码时,我收到以下警告(多次): 警告:sun.misc.SignalHandler是Sun专有API,可能会在将来的版本中删除 使用这些类时: import sun.misc.SignalHandler; import sun.misc.Signal; 有没有更好的方法将信号发送到正在运行的JVM以启动主线程的关闭? 我不希望将我的代码绑定到此API,以便将来可以将其删除。 此代码现在使用1.5.0_22 JVM在Solaris和HPUX上运行。 任何帮助或建议将不胜感激。 我使用IBM的这个文档来开发信号处理程序: http://www.ibm.com/developerworks/java/library/i-signalhandling/

javax.naming.NameNotFoundException:在此Context中未绑定Name。 无法找到

我试图找出我的网络应用程序抛出的原因 javax.naming.NameNotFoundException: Name [flexeraDS] is not bound in this Context. Unable to find [flexeraDS]. 当我正在复制配置的姐妹悄然运行时。 我有: 通过右键单击并选择“新持久性”从netbeans创建一个新的持久性,我不关心我给出的实际值,但我只需要在正确的目录中创建persistence.xml文件。 编辑了我的context.xml,如下所示匹配工作姐妹项目中的一个 编辑我的web.xml以包含资源DataSource,如下所示 编辑我的persistence.xml如下所示再次匹配姐妹项目工作中的相同值。 添加了我的lib文件夹中的其他项目中存在的所有库,并从NetBeans中添加它们以正确地置于战争中。 的context.xml web.xml中 DB Connection ds/flexeraDS javax.sql.DataSource Container persistence.xml中 org.eclipse.persistence.jpa.PersistenceProvider java:/comp/env/ds/flexeraDS 现在我的syster项目有些如何设法在启动时在apache-tomcat-7.0.40 / bin / exampleDB中创建其数据库文件夹,而我的不创建它并抛出如上所述的错误。 抛出错误的代码是我第一次连接到数据库时: EntityManager entityManager = PersistenceProvider.createEntityManager(); PersistenceProvider类的位置是: public final class PersistenceProvider { private static Map lOptions = new HashMap(); static […]

@Context对象来自哪里

我一直在寻找,但似乎无法找到明确的答案…… 服务器(我的问题的玻璃鱼)注入用@Context注释的实际objets的机制是什么? 更具体地说,如果我想编写一个类似于以下内容的类: @Path(“/”) public class MyResource { @GET public String doSomething(@Context MyObject obj) { // … } } 那我该怎么办? MyObject在哪里实现,谁在做,以及如何实现? 编辑:我见过以下内容: 在JAX-RS中使用@ Context,@ Provider和ContextResolver http://jersey.576304.n2.nabble.com/ContextResolver-confusion-td5654154.html 但是,这与我所看到的不一致,例如在org.neo4j.server.rest.web.RestfulGraphDatabase的构造函数中,它具有以下签名: public RestfulGraphDatabase( @Context UriInfo uriInfo, @Context Database database, @Context InputFormat input, @Context OutputFormat output, @Context LeaseManager leaseManager )

如何从两个数组列表中删除常用值

我们如何从两个ArrayList中删除常用值。 让我们考虑我有两个Arraylist,如下所示 ArrayList1= [1,2,3,4] ArrayList1= [2,3,4,6,7] 我希望得到结果 ArrayListFinal= [1,6,7] 有人可以帮帮我吗?

控制对“.internal”包的访问的最佳实践

我编写Eclipse插件并将一些类导出为API,同时希望限制对其他类的访问。 我按照常见的Eclipse实践将这些类分成“.internal”子包。 但是,我不能在这些类上使用“包”或默认级别访问,因为它们中的许多都需要由我导出的类使用。 防止或阻止我的API用户出于自己的目的使用这些类的最佳做法是什么? 有自动检查器吗? 我承认,当我别无选择时,我已经涉足了使用Eclipse的一些内部类:) 澄清:我对非插件代码有类似的需求。