EJB技术正在像其他辉煌过的技术一样走到了一个关口。2000年以前这项技术充满了传奇色彩,被大批企业不假思索地接受。然而理想毕竟是理想,经过了几年的发展,今天这项技术却正在被怀疑或者至少说让技术人员犹豫不决,现实的是J2EE的对手出来了,.NET似乎又有着后发的技术优势。大部分的探讨和争论已经开始转向这两个体系结构的对比。Java阵营内部同样发出了怀疑的声音,最直接的就是对EJB的攻击,因为人们发现原来这项技术所做的承诺似乎都走向了相反的方向   1.大量的案例由于采用了这种技术反而使得系统开发日趋复杂,而不是想像的简化开发周期加长成了家常便饭,实现一个进销存就把很多人难倒。   2. EJB成了昂贵的代名词,而不是期望的成本降低   3. 废了半天劲还不如用消息传递进行系统互操作   4. 最终发现彻底地摆脱平台是不可能的   但是Java总归还是不错的,于是有了Spring等等N种体系。EJB开始让人们困惑。任何技术和人生一样有它的困惑期,但是EJB给人们的困惑尤为经典,更具意义。J2EE和其他体系的对比已经泛滥于网上,实际应用的经验也随处可见,以至于不需要这里介绍,但是EJB现在并未被单独地被重视这是应该值得注意的,这与J2EE发展史却是背道而驰的。必须承认这么一个事实,EJB是被单独提出和定义的,最早是完全单独的一种规范,这与所谓体系结构并没有直接的关系,或者说EJB的意义和目标绝不只是在J2EE内封装商业逻辑,所以过于在框架内讨论EJB,或者说认为J2EE的弱点一定要蔓延到EJB上是否合适是值得探讨的。   EJB诞生的初期人们的兴奋关键在于这种模型吸收了以往组件技术的精华,并有很大发展,使人们看到了强健的商业组件制造成本降低的期望,特别是跨越平台的可装配性和移植性,这是软件工程界一直的梦想,因为这意味着企业端计算程序设计工业化和细致分工也许要成为可能。这种思想目前也影响了界面一级的应用,例如所谓的Portlet技术,IBM公司的WebSphere平台的技术也许不是可怕的,但是有几十个合作伙伴事实上给它提供了类似的合作,这才真正是让对手感到害怕的。因此我们谈论EJB的时候,谈论它的价值和作用,脱离了它的设计目标也就失去了更大的意义,以下的商业环境和软件技术瓶颈应该重新被审视:   1. 软件工程就重用领域来讲是否超越了组件时代,或者说已经不需要组件了?   2. 软件的重用是否只需要互调用而不需要重复装配,乃至装配到不同的部位?   3. 商业逻辑是否仍然需要封装,并保持强健的特性,不间断地服务   4. 组件和强健和可用性是互联特性能取代的吗?   5. 是否有更廉价的组件形式超越EJB并同样获得众多的支持?   6. .NET的组件标准和EJB是否有可比性,或者说什么组件形式和EJB才有可比性?   当冷静地思考的时候就知道,技术不应该被当作明星吹捧,但同样也没有容易倒下的软件技术。EJB不成熟,但不等于可以轻易被否定。是EJB使得很多普通的程序员能够介入原来贵族似的组件开发,甚至是简单的Windows上面开发UNIX上的组件,EJB的历史问题大多数在于将这种技术错误地滥用:一个浏览人数少的可怜广告浏览程序也要用组件,对于一个只想简单算出库存的客户设计了所谓N年后才需要的扩展性。同样现实中在这一技术擅长的领域,至少目前还无法找到更强大的竞争者。技术选择是应用型的技术人员永恒的主题,类似的困惑会不断的出现,最重要的是认同它们的理想和目标,保持对它们客观清醒的认识。放到擅长的领域的技术才是最优美的,这和人生没有什么两样。

1、安装配置freetds复制代码 代码如下:wget http://mirrors.xmu.edu.cn/ubuntu/archive/pool/main/f/freetds/freetds_0.82.orig.tar.gztar zxf freetds_0.82.orig.tar.gzcd freetds_0.82./configure --prefix=/sxmobi/Software/common/freetds --enable-msdblibmake && make install 2、编译mssql扩展,假设PHP安装源码包为/usr/local/src/php-5.3.11) 进入模块源码目录,>cd /sxmobi/web/softbak/php-5.3.13/ext/mssql2) 生成编译配置文件,>/sxmobi/Software/webserver/php/bin/phpize3) 安装,>./configure --with-php-config=/sxmobi/Software/webserver/php/bin/php-config --with-mssql=/sxmobi/Software/common/freetds4) >make5) >make install6) 把生成的mssql.so模块复制到PHP的扩展目录,修改php.ini,加入mssql模块注:在编译配置的时候可能会遇到找不到FreeTDS的错误:configure: error: Directory /usr/local/freetds is not a FreeTDS installation directory,按照官方的解释http://www.freetds.org/news.html,PHP检测一些文件以确定FreeTDS是否安装,由于新版的FreeTDS不再安装这些文件,导致PHP编译失败。只需建立两个空文件即可。如下:>touch /usr/local/freetds/include/tds.h>touch /usr/local/freetds/lib/libtds.a3、修改/etc/freetds/freetds.conf复制代码 代码如下:[server2008]        host = 192.168.0.109        port = 1433        tds version = 7.0    client charset = utf8  4、测试连接  复制代码 代码如下:

1.每秒递减跳转复制代码 代码如下:<script language=javascript>     function out(obj){      var i = obj ;      if(i==0)      document.location.href="index.jsp";     document.body.innerHTML = i;      i--;     setTimeout("out("+i+")",1000);   }  </script>  <body onload="out(5);"> </body>2.使用response.setHeader函数复制代码 代码如下:<%response.setHeader("Refresh","5;URL=...");%>3.使用meta标签复制代码 代码如下:<META   HTTP-EQUIV="REFRESH"   CONTENT="2";url=xxxx.jsp">JSP页面实现自动跳转!一、页面自动刷新:把如下代码加入<head>区域中复制代码 代码如下:<meta http-equiv="refresh" content="5">注:content="5" 是时间控制,表示每隔5秒刷新一次页面。二、页面自动跳转:把如下代码加入<head>区域中复制代码 代码如下:<meta http-equiv="refresh" content="1;url=index.jsp">注:content="1 是时间控制,

一.Sql Server服务远程过程调用失败解决以前出现过这个问题,那时候是因为把实例安装在了D盘,后来D盘被格式化了。然后,这些就没了。今天早上打开电脑,竟然又出现这个问题,可是Server2008R2全部装在C盘了呢。解决方法:最后查找解决方法,发现故障原因为:安装Visual Studio 2012的时候,自动安装“Microsoft SQL Server 2012 Express LocalDB”服务,导致原本的SQL2008无法正常工作。那么解决方法如下:①方法一:打开控制面板,找到程序->卸载程序,把”Microsoft SQL Server 2012 Express LocalDB”卸载掉,然后打开SQL Server 配置管理器,显示一切正常就OK了。但我的VS2012已经安装半个多月了,怎么今天才出现这个问题?②方法二:升级SqlServer2008R2为SP1或者SP2。但是现在急用,我的实例还在,只是没有启动而已,就尝试如下方法:右击“计算机”→“管理”→“服务”,找到SQL Server(MSSQLSERVER),右击,选择“启动”。再登录数据库,没有问题了。但是重新启动系统后,问题会依旧的。总结:想要永久解决该问题还得用上面的方法。为防万一,最好进去把自己的数据库备份出来,或者创建一个系统还原点,然后再去尝试。总的来说,上面的两种方法原因都是因为微软的兼容性问题,或者卸载新的回去旧版本,或者升级成为新版本。所以,本人已经通过第二种方法,完美实现正常。二.VIA协议出问题无法开启服务。查看系统日志如下:再用sqlserver自带的日志文件查看器查看sqlserver日志,出错信息如下:由此可以看出SQL server的VIA协议有问题了。进入sql server configure manager,点开 Sql server 网络配置(非sql native client 配置),点sqlserver2008(我sqlserver的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功。三.用户名发生更改,无法登录。打开控制面板-》管理工具-》服务 打开SQL Sever服务属性 再登陆选框选择本地用户以上所述是小编给大家介绍的SQL Sever2008r2 数据库服务各种无法启动问题的解决办法(详解),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。   命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更容易管理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用。   本文用代码示例的方式给出了一个快速教程,使你可以开始使用JNDI。它:   1、提供了JNDI概述   2、描述了JNDI的特点   3、体验了一下用JNDI开发应用   4、表明了如何利用JNDI访问LDAP服务器,例如,Sun ONE 目录服务器   5、表明了如何利用JNDI访问J2EE服务   6、提供了示例代码,你可以将其改编为自己的应用   JNDI概述   我们大家每天都不知不觉地使用了命名服务。例如,当你在web浏览器输入URL,http://java.sun.com时,DNS(Domain Name System,域名系统)将这个符号URL名转换成通讯标识(IP地址)。命名系统中的对象可以是DNS记录中的名称、应用服务器中的EJB组件(Enterprise JavaBeans Component)、LDAP(Lightweight Directory Access Protocol)中的用户Profile。   目录服务是命名服务的自然扩展。两者之间的关键差别是目录服务中对象可以有属性(例如,用户有email地址),而命名服务中对象没有属性。因此,在目录服务中,你可以根据属性搜索对象。JNDI允许你访问文件系统中的文件,定位远程RMI注册的对象,访问象LDAP这样的目录服务,定位网络上的EJB组件。   对于象LDAP 客户端、应用launcher、类浏览器、网络管理实用程序,甚至地址薄这样的应用来说,JNDI是一个很好的选择。   JNDI架构   JNDI架构提供了一组标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分离,因此不管应用访问的是LDAP、RMI、DNS、还是其他的目录服务。换句话说,JNDI独立于目录服务的具体实现,只要你有目录的服务提供接口(或驱动),你就可以使用目录。如图1所示。 图1:JNDI架构   关于JNDI要注意的重要一点是,它提供了应用编程接口(application programming interface,API)和服务提供者接口(service provider interface,SPI)。这一点的真正含义是,要让你的应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI SPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口—很象JDBC驱动为各种具体的数据库系统实现了JDBC接口一样。作为一个应用开发者,你不必操心JNDI SPI。你只需要确认你要使用的每一个命名或目录服务都有服务提供者。   J2SE和JNDI   Java 2 SDK 1.3及以上的版本包含了JNDI。对于JDK 1.1和1.2也有一个标准的扩展。Java 2 SDK 1.4.x的最新版本包括了几个增强和下面的命名/目录服务提供者:   1、LDAP(Lightweight Directory Access Protocol)服务提供者   2、CORBA COS(Common Object Request Broker Architecture Common Object Services)命名服务提供者   3、RMI(Java Remote Method Invocation)注册服务提供者 l DNS(Domain Name System)服务提供者   更多的服务提供者   可以在如下网址找到可以下载的服务提供者列表:http://java.sun.com/products/jndi/serviceproviders.html 特别有意思的或许是如下网址提供的Windows 注册表JNDI服务提供者:http://cogentlogic.com/cocoon/CogentLogicCorporation/JNDI.xml 这个服务提供者使你可以访问Windows XP/2000/NT/Me/9x的windows注册表。也可以在如下网址下载JNDI/LDAP Booster Pack:http://java.sun.com/products/jndi/ 这个Booster Pack包含了对流行的LDAP控制的支持和扩展。它代替了与LDAP 1.2.1服务提供者捆绑在一起的booster pack。关于控制和扩展的更多信息可以在如下网站看到: http://java.sun.com/products/jndi/tutorial/ldap/ext/index.html 另一个有趣的服务提供者是Sun的支持DSML v2.0(Directory Service Markup Language,目录服务标记语言)的服务提供者。DSML的目的是在目录服务和XML之间架起一座桥梁。   JNDI API   JNDI API由5个包组成:   1、Javax.naming:包含了访问命名服务的类和接口。例如,它定义了Context接口,这是命名服务执行查询的入口。   2、Javax.naming.directory:对命名包的扩充,提供了访问目录服务的类和接口。例如,它为属性增加了新的类,提供了表示目录上下文的DirContext接口,定义了检查和更新目录对象的属性的方法。   3、Javax.naming.event:提供了对访问命名和目录服务时的时间通知的支持。例如,定义了NamingEvent类,这个类用来表示命名/目录服务产生的事件,定义了侦听NamingEvents的NamingListener接口。   4、Javax.naming.ldap:这个包提供了对LDAP 版本3扩充的操作和控制的支持,通用包javax.naming.directory没有包含这些操作和控制。   5、Javax.naming.spi:这个包提供了一个方法,通过javax.naming和有关包动态增加对访问命名和目录服务的支持。这个包是为有兴趣创建服务提供者的开发者提供的。   JNDI 上下文   正如在前面提到的,命名服务将名称和对象联系起来。这种联系称之为绑定(binding)。一组这样的绑定称之为上下文(context),上下文提供了解析(即返回对象的查找操作)。其他操作包括:名称的绑定和取消绑定,列出绑定的名称。注意到一个上下文对象的名称可以绑定到有同样的命名约定的另一个上下文对象。这称之为子上下文。例如,如果UNIX中目录/home是一个上下文,那么相对于这个目录的子目录就是子上下文—例如,/home/guests中guests就是home的子上下文。在JNDI中,上下文用接口javax.naming.Context表示,这个接口是与命名服务交互的关键接口。在Context(或稍后讨论的   DirContext)接口中的每一个命名方法都有两种重载形式:   1、Lookup(String name):接受串名   2、Lookup(javax.naming.Name):接受结构名,例如,CompositeName(跨越了多个命名系统的名称)或CompondName(单个命名系统中的名称);它们都实现了Name接口。Compound name的一个例子是:cn=mydir,cn=Q Mahmoud,ou=People,composite name的一个例子是:cn=mydir,cn=Q Mahmoud,ou=People/myfiles/max.txt(这里,myfiles/max.txt是表示第二部分的文件名) Javax.naming.InitialContext是实现了Context接口的类。用这个类作为命名服务的入口。为了创建InitialContext对象,构造器以java.util.Hashtable或者是其子类(例如,Properties)的形式设置一组属性。下面给出了一个例子:   Hashtable env = new Hashtable(); // select a service provider factory env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContext"); // create the initial context Context contxt = new InitialContext(env);   INITIAL_CONTEXT_FACTORY指定了JNDI服务提供者中工厂类(factory class)的名称。Factory负责为其服务创建适当的InitialContext对象。在上面的代码片断中,为文件系统服务提供者指定了工厂类。表1给出了所支持的服务提供者的工厂类。要注意的是文件系统服务提供者的工厂类需要从Sun公司单独下载,J2SE 1.4.x没有包含这些类。   表1:上下文INITIAL_CONTEXT_FACTORY的值   Name Service Provider Factory File System com.sun.jndi.fscontext.RefFSContextFactory LDAP com.sun.jndi.ldap.LdapCtxFactory RMI com.sun.jndi.rmi.registry.RegistryContextFactory CORBA com.sun.jndi.cosnaming.CNCtxFactory DNS com.sun.jndi.dns.DnsContextFactory   为了用名称从命名服务或目录中取得或解析对象,使用Context的lookup方法:Object obj=contxt.lookup(name)。Lookup方法返回一个对象,这个对象表示的是你想要找的上下文的儿子。

分类:365bet娱乐城官网

时间:2016-02-25 12:12:37