JBoss文档(二)——JBoss开发、打包、部署

EJB学习二 我的第一个EJB项目(Eclipse下的EJB开发,与JBoss集成,Ant打包) EJB项目的创建(使用开发工具eclipse) 1、打开eclipse,新建一个普通的Java Project(实际开发使用的是java Project而不是ejb的) 2、点击Next,添加外部的jar包 3、为了方便,可以将jboss-5.1\cliient下的所有jar包全部导入(入门...将就一下...) 4、点击finish完成 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 1

第一章补充

我看了自己写第一章后,对于build.xml没有显示全面,现在补充如下:

<!-- Simple Ant build script to test an Ant installation
<project name="TestInstall" default="run" basedir=".">
<target name="init">
<available file="ASimpleHelloObject.java" property="ASimpleHelloObject"/>
</target>
<target name="ASimpleHelloObject" unless="ASimpleHelloObject" depends="init">
<echo file="ASimpleHelloObject.java">
public class ASimpleHelloObject
{
public static void main(String[] args)
{
System.out.println("ASimpleHelloObject.main was called");
}
}
</echo>
<echo message="Wrote ASimpleHelloObject.java" />
</target>
<target name="compile" depends="ASimpleHelloObject">
<javac destdir="." srcdir="." debug="on" classpath=".">
<include name="ASimpleHelloObject.java"/>
</javac>
</target>
<target name="run" depends="compile">
<java classname="ASimpleHelloObject" classpath="." />
<echo message="Ant appears to be successfully installed" />
</target>
</project>

1、下载例子源程序

所有例子的源代码,都在文件documentation-example.zip(windows平台) or documentation-example.tar.gz (Unix/Lunix平台)。你可以直接从 www.jboss.org进行下载。下载完后放在一个目录下。下载网址:http://www.jboss.org/docs/manual/files/documentation-example.zip

1.1 建立 BEAN
此节主要是建立一个简单的EJB,可以查看代码,这个“Interest”例子,是一个简单无状态的会话EJB。它的目的是根据说明的利息率,来对借的所有钱计算利息。实际上在整个包代码中只有一行功能。


1.2 回顾EJBs
在我们查看代码之前,我们先对EJB进行复习一下。在EJB最小类型,也必须有三个类:remote interface, home interface和bean实现类。
remote interface是会把EJB中方法提供给外边世界,让外边的代码来进行调用,在这个例子中类名称是org.jboss.interest.Interrest。
home interface是管理remote interface类的类。包括建立、删除等操作。在这个例子中类名称是org.jboss.interest.InterrestHome。
bean实现类提供home interface和remote interface所有方法的实现。在这个例子中类名称是org.jboss.interest.InterrestBean。


当然一个Bean可能还包括其他类,甚至其他包。但是必须有此三个类,其他类是在此三个类之上建立的。所有类被打包进一个JAR文件,此文件是用一个目录结构来反映出包的层次关系。在此例子中所有类都打包在org.jboss.interest包中,所以他们需要在目录org/jboss/interest/下。

在包含所有类的jar文件建立之前,必须有一个META-INF目录。此目录存放了部署描述符(通常叫“ejb-jar.xml”),和可选的其他XML文件。这些文件告诉服务器关于应用明确服务信息。对于JBoss 来讲,文件名必须叫“jboss.xml”。

创建jar文件后部署到JBoss Server上。在客户端你需要一个jndi.properties文件,此文件告诉你的客户端程序从哪里初始化查找JNDI 命名服务。从这个服务,客户端将查找到Interest bean,并且返回bean的home interface。home interface用来得到bean的一个remote interface。它可以用远程接口来访问bean提供的商业方法。

1.3 EJB类
我们需要三个类:remote interface, home interface 和bean实现类。remote interface远程接口类,文件名Interest.java。代码如下:

package org.jboss.docs.interest;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
/**
This interface defines the `Remote' interface for the `Interest' EJB. Its
single method is the only method exposed to the outside world. The class
InterestBean implements the method.
*/
public interface Interest extends EJBObject
{
/** Calulates the compound interest on the sum `principle', with interest rate per period `rate' over `periods' time periods. This method also prints a message to standard output; this is picked up by the EJB server and logged. In this way we can demonstrate that the method is actually being executed on the server, rather than the client. */
public double calculateCompoundInterest(double principle, double rate, double periods) throws RemoteException;
}

远程接口只有一个商业方法calculateCompoundInterest。Home interface 文件名InterestHome.java。代码如下:


package org.jboss.docs.interest;
import java.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
/**
This interface defines the 'home' interface for the 'Interest' EJB.
*/
public interface InterestHome extends EJBHome
{
/** Creates an instance of the `InterestBean' class on the server, and returns a remote reference to an Interest interface on the client. */
Interest create() throws RemoteException, CreateException;
}

最后我们给出bean实现类,文件名称:InterestBean.java。代码如下:

package org.jboss.docs.interest;
import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
This class contains the implementation for the 'calculateCompoundInterest' method exposed by this Bean. It includes empty method bodies for the methods prescribe by the SessionBean interface; these don't need to do anything in this simple example. */public class InterestBean implements SessionBean
{
/** Calulates the compound interest on the sum `principle', with interest rate per period `rate' over `periods' time periods. This method also prints a message to standard output; this is picked up by the EJB server and logged. In this way we can demonstrate that the method is actually being executed on the server, rather than the client. */
public double calculateCompoundInterest(double principle, double rate, double periods) {
System.out.println("Someone called `calculateCompoundInterest!'");
return principle * Math.pow(1 rate, periods) - principle;
}
/** Empty method body */
public void ejbCreate() {}
/** Every ejbCreate() method ALWAYS needs a corresponding ejbPostCreate() method with exactly the same parameter types. */
public void ejbPostCreate() {}
/** Empty method body */
public void ejbRemove() {} /** Empty method body */
public void ejbActivate() {} /** Empty method body */
public void ejbPassivate() {} /** Empty method body */
public void setSessionContext(SessionContext sc) {}

}
注意大部分方法是空的。因为这些方法在SessionBean接口中说明,所以必须在InterestBean中存在,但在这个简单例子中,不需要具体内容。

2、部署描述符

当你编辑完类文件后,我们来看部署描述符。此文件告诉EJB Server是哪个类应该被唤醒bean、Home Interface 和remote Interface。如果一个包中有不止一个bean,它指明ejb同另外bean如何相和。在这 个简单例子中只有一个ejb,所以我们不用关心这方面问题。
大部分商业EJB Server都提供图形化部署工具,来构造部署描述符,JBoss没有XML编辑器,但是它能够简单手工构造部署描述符。下面是Interest Bean部署描述符:


<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar>
<description>JBoss Interest Sample Application</description>
<display-name>Interest EJB</display-name>
<enterprise-beans>
<session>
<ejb-name>Interest</ejb-name>
<home>org.jboss.docs.interest.InterestHome</home>
<remote>org.jboss.docs.interest.Interest</remote>
<ejb-class>org.jboss.docs.interest.InterestBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>


部署描述符文件必须命名为“ejb-jar.xml”,并且必须放在目录META-INF下。一个大家容易犯的错误是目录名字,有的写成“META_INF”, “META~INF”或“meta-inf”所有这些都不能正常的工作。

我们在server上部署一个应用程序,而不是一个ejb。在这个例子中我们的应用程序只有一个ejb。在部署描述符中<ejb-name>Interest</ejb-name>表明ejb的名称。JBoss缺省是把bean的home interface作为JNDI命名空间放在<ejb-name>中,除非你修改缺省值。实际上客户端应用程序不是必须使用这个名字的。开发者不用为JNDI命名空间指明一个不同的名字而费心。然而一个由完整应用程序的产品包含多个beans,通常用一个和开发者说明不同的名字。所以会发现“[application name]/[bean name]”等,关于这部分我们以后介绍。

尽管部署描述符格式的文件ejb-jar.xml对所有ejb Server都是共有的。你可以从sun得到一个正确定义的DTD, 但是没有为一个特殊EJB Server指明每个必须要求。也没有说明如何从ejb-name影射到部署的JNDI名字,例如“[application name]/[bean name]”。通过JBoss提供一个缺省行为,来进行工作。这些工作来自于ejb-jar.xml。在高级配置的案例中,你必须定义JBoss说明行为, 此行为用jboss.xml部署描述符。在高级配置中我们会谈到jboss.xml描述符的详细信息的。

这里我们仅配置jboss.xml描述符的JNDI名字来用来访问Interest EJB home inrterface。通过缺省的JNDI名字用来访问EJB home inrterface, 需要同ejb-jar.xml的ejb-name相同。对于这个简单的例子,Interest bean通过JNDI初始化上下文(作为“Interest”)来定位。 我们想用“interest/Interest”使home interface 可以使用,所以我们必须用jboss.xml描述符来说明。在jboss.xml中,重新覆盖缺省的JNDI命名。为了重新编写缺省的行为,我们用ejb-jar.xml中的ejb-name元素值作为bean home接口的JNDI命名,必须说明jndi命名,来写jboss.xml描述符如下:

<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>Interest</ejb-name>
<jndi-name>interest/Interest</jndi-name>
</session>
</enterprise-beans>
</jboss>


这个文件说明调用的Interest BEAN被绑定在interest/Interest的JNDI名称下。我们建立的标准ejb-jar.xml部署描述符同JBoss说明jboss.xml共同设置Interest EJB home接口的JNDI名称为“interest/Interest”。我们现在有了EJB类,这些类是建立ejb 文件包必须的文件。


3、打包和部署BEAN

jar包是建立一个JAR文件,该文件包含EJB类文件和部署描述符。在下载的例子可能和你设置环 境不同,所以需要修改examples/build/build.xml的内容。关于各个ant方面的内容,我会在Ant文档中介绍给大家。关于如何修改,下面我一步步地来告诉大家。以下是windows平台的。至于Unix/Lunix平台基本相似,这里就不在叙述了。

1) 在修改之前,比首先设定JBOSS_DIST环境变量,指定到你安装的Jboss的目录。我安装在C:/jboss-3.0.6_tomcat-4.1.18, 所以 JBOSS_DIST设定为C:/jboss-3.0.6_tomcat-4.1.18。

2) 你是否安装了tomcat或jetty等web服务器。如果你没有安装,建议你安装jboss-3.0.6_tomcat-4.1.18, JBoss和tomcat直接结合在一起啦,不需要再单独安装,当然也可以安装jboss-jetty( JBoss和jetty直接结合在一起)。取决你喜欢什么web服务器。

3) 完成上面两步后,我们来讨论修改examples/build/build.xml文件。在原有的文件中的部分代码:

<target name="validate-servlet">
<!-- Override with your web server servlet jar location.
The default assumes that JBOSS_DIST points to a
JBoss/Tomcat bundle distribution

<available property="servlet.jar" value="${env.JBOSS_DIST}/../tomcat/lib/servlet.jar" file="${env.JBOSS_DIST}/../tomcat/lib/servlet.jar"/>
<available property="servlet.jar" value="${env.JBOSS_DIST}/../jetty/lib/javax.servlet.jar" file="${env.JBOSS_DIST}/../jetty/lib/javax.servlet.jar"/>
<available property="servlet.jar" value="${env.JBOSS_DIST}/../catalina/common/lib/servlet.jar" file="${env.JBOSS_DIST}/../catalina/common/lib/servlet.jar"/>
<available property="servlet.jar" value="${env.JBOSS_DIST}/../catalina/common/lib/servlet.jar" file="${env.TOMCAT_HOME}/lib/servlet.jar"/>
<property name="servlet.jar" value="COULD_NOT_FIND_SERVLET_JAR"/>
<path id="base.path_22">
<pathelement location="${jboss.dist}/client/ejb.jar"/>
<pathelement location="${jboss.dist}/client/jaas.jar"/>
<pathelement location="${jboss.dist}/client/jbosssx-client.jar"/>
<pathelement location="${jboss.dist}/client/jboss-client.jar"/>
<pathelement location="${jboss.dist}/client/jnp-client.jar"/>
<pathelement location="${servlet.jar}"/>
</path>
<path id="base.path_24">
<pathelement location="${jboss.dist}/client/jboss-j2ee.jar"/>
<pathelement location="${jboss.dist}/client/jaas.jar"/>
<pathelement location="${jboss.dist}/client/jbosssx-client.jar"/>
<pathelement location="${jboss.dist}/client/jboss-client.jar"/>
<pathelement location="${jboss.dist}/client/jnp-client.jar"/>
<pathelement location="${servlet.jar}"/>
</path>
</target>
<target name="validate-jboss" depends="validate-servlet">
<available property="classpath_id" value="base.path_22" file="${jboss.dist}/client/ejb.jar" />
<available property="classpath_id" value="base.path_24" file="${jboss.dist}/client/jboss-j2ee.jar" />
</target>
由于此代码例子是jboss2.2中的所以对于我们不能适应,在此基础上我们来进行改动。在改动之前,来说明一下为什么改动,让大家清楚改动原因,不是一团雾水。

<available property="servlet.jar" value="${env.JBOSS_DIST}/../tomcat/lib/servlet.jar" file="${env.JBOSS_DIST}/../tomcat/lib/servlet.jar"/>….
此部分说明你运用的web服务器是什么,根据你使用的web服务器来设置servlet.jar。 由于我使用的是jboss-tomcat.。
<path id="base.path_24"> … </path>说明客户端要的CLASSPATH包。

修改以后的部分文件:
<target name="validate-servlet">
<!-- Override with your web server servlet jar location.
The default assumes that JBOSS_DIST points to a
JBoss/Tomcat bundle distribution

<available property="servlet.jar" value="${env.JBOSS_DIST}/tomcat-4.1.x/common/lib/servlet.jar" file="${env.JBOSS_DIST}/tomcat-4.1.x/common/lib/servlet.jar"/>
<available property="servlet.jar" value="${env.JBOSS_DIST}/../jetty/lib/javax.servlet.jar" file="${env.JBOSS_DIST}/../jetty/lib/javax.servlet.jar"/>
<available property="servlet.jar" value="${env.JBOSS_DIST}/../catalina/common/lib/servlet.jar" file="${env.JBOSS_DIST}/../catalina/common/lib/servlet.jar"/>
<available property="servlet.jar" value="${env.JBOSS_DIST}/../catalina/common/lib/servlet.jar" file="${env.TOMCAT_HOME}/lib/servlet.jar"/>
<property name="servlet.jar" value="COULD_NOT_FIND_SERVLET_JAR"/>

<path id="base.path_22">
<pathelement location="${jboss.dist}/client/ejb.jar"/>
<pathelement location="${jboss.dist}/client/jaas.jar"/>
<pathelement location="${jboss.dist}/client/jbosssx-client.jar"/>
<pathelement location="${jboss.dist}/client/jboss-client.jar"/>
<pathelement location="${jboss.dist}/client/jnp-client.jar"/>
<pathelement location="${servlet.jar}"/>
</path>
<path id="base.path_306">
<pathelement location="${jboss.dist}/client/jboss-j2ee.jar"/>
<pathelement location="${jboss.dist}/client/jboss-jaas.jar"/>
<pathelement location="${jboss.dist}/client/jbosssx-client.jar"/>
<pathelement location="${jboss.dist}/client/jboss-client.jar"/>
<pathelement location="${jboss.dist}/client/jnp-client.jar"/>
<pathelement location="${jboss.dist}/client/jbossall-client.jar"/>
<pathelement location="${jboss.dist}/client/log4j.jar"/>
<pathelement location="${servlet.jar}"/>
</path>
</target>

<target name="validate-jboss" depends="validate-servlet">
<available property="classpath_id" value="base.path_22" file="${jboss.dist}/client/ejb.jar" />
<available property="classpath_id" value="base.path_306" file="${jboss.dist}/client/jboss-j2ee.jar" />

</target>

4)修改完后存盘。然后到exaples/build目录下运行以下命令:
ant intro-interest-jar
如果成功会提示 : BUILD SUCCESSFUL 。
在编译EJB 类文件,建立ejb-jar文件时,如果有一个java.lang.NoClassDefFoundError异常
产生,你需要检查你的classpath。修改<path id="base.path_306">中的内容。

5)完成后你可以查看interest.jar文件中内容:
jar –tvf interest.jar为了把bean部署到server上,必须拷贝interest.jar文件到JBOSS_DIST/server/default/deploy目录下。服务器自己会发现发生变化的文件,并重新部署它。

6)当JBoss server运行时,通过在examlpes/build目录下运行ant intro-interest-deploy来部署jar。在你部署期间,你会看到在server控制台的一些信息。

7)如果你发现部署失败的信息,通常是部署描述符ejb-jar.xml文件结构坏了或丢失或在错误的目录下。

8)如果在Server上部署完后,我们来编写一个简单客户端来测试它是否正常工作。


4、 编码和编译客户端

单独一个ejb是不能用,我们至少需要一个简单客户端来用它的服务。一个EJB可以被其他的EJB,普通的JavaBean,一个JSP page,一个applet程序或是独立的应用程序调用。在这个例子中。我们编写一个简单的应用程序。这个应用程序将会建立Interest类的一个对象。并且执行它的方法。当部署完bean后,server会绑定EJB home 接口到interest/Interest的JNDI名字下,并输出此home 接口,能通过RMI被调用。客户端代码如下:

package org.jboss.docs.interest;

import javax.naming.InitialContext;
import javax.naming.Context;
import javax.rmi.PortableRemoteObject;

import org.jboss.docs.interest.Interest;
import org.jboss.docs.interest.InterestHome;

/** This simple application tests the 'Interest' Enterprise JavaBean which is
implemented in the package 'org.jboss.docs.interest'. For this to work, the
Bean must be deployed on an EJB server.
*/
public class InterestClient
{
/** This method does all the work. It creates an instance of the Interest EJB on
the EJB server, and calls its `calculateCompoundInterest()' method, then prints
the result of the calculation.
*/
public static void main(String[] args)
{
// Enclosing the whole process in a single `try' block is not an ideal way
// to do exception handling, but I don't want to clutter the program up
// with catch blocks
try
{
// Get a naming context
InitialContext jndiContext = new InitialContext();
System.out.println("Got context");

// Get a reference to the Interest Bean
Object ref = jndiContext.lookup("interest/Interest");
System.out.println("Got reference");

// Get a reference from this to the Bean's Home interface
InterestHome home = (InterestHome)
PortableRemoteObject.narrow(ref, InterestHome.class);

// Create an Interest object from the Home interface
Interest interest = home.create();

// call the calculateCompoundInterest() method to do the calculation
System.out.println("Interest on 1000 units, at 10% per period, compounded over 2 periods is:");
System.out.println(interest.calculateCompoundInterest(1000, 0.10, 2));
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}

客户端在JNDI命名“interest/Interest”下查找InterestHome接口。如果你提供了一个正确的jboss.xml文件,Bean home接口将会绑定到这个名字。否则,JNDI的名字是“Interest”。为了连接JBoss JNDI,必须建立一个初始化上下文,该上下文是根据在客户端的classpath路径下jndi.properties来的。这个jndi.property文件我们放在了examples/resources/jndi.properties中。代码如下:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces


指定了InitialContextFactory(初始化上下文工厂),url,和工厂对象的包。在这里url是“localhost”,或运行JBoss的主机名(IP),用的缺省端口是1099。为了不同RMI协议互相兼容,通过“narrow”方法来确保“ref”对象能转换为“InterestHome”对象。客户端不需要必须和EJB类在同一个包中。所以它必须import ejb claess类。

为了能运行Ant命令。我修改了examples/org/jboss/docs/interest/build.xml文件,原文件的部分内容:

<target name="deploy-ejb-jar" depends="ejb-jar">
<copy file="${build.interest.dir}/interest.jar" todir="${jboss.dist}/deploy" />
</target>
<target name="deploy-ear" depends="ear">
<copy file="${build.interest.dir}/interest.ear" todir="${jboss.dist}/deploy" />
</target>

修改后为:

<target name="deploy-ejb-jar" depends="ejb-jar">
<copy file="${build.interest.dir}/interest.jar" todir="${jboss.dist}/server/default/deploy" />
</target>
<target name="deploy-ear" depends="ear">
<copy file="${build.interest.dir}/interest.ear" todir="${jboss.dist}/server/default/deploy" />
</target>
修改完后保存。编译和运行InterestClient,通过以下命令:
ant intro-interest-client会出现正确的结果。

5、补充说明

各个jar文件:

1) jboss-j2ee.jar :是标准的javax.ejb.* 包括EJB2.0接口和类。

2) jboss-jaas.jar :是java鉴定和授权服务安全类。

3) jbosssx-client.jar :是JbossSX安全扩展客户端类。

4) jboss-client.jar :是Jboss EJB容器代理和stub客户端类。

5) jnp-client.jar :是JBoss JNDI提供者客户端类。

现在隐藏代码,编译和部署EJB, 运行简单客户端进行测试。

6、 结论

最后来进行一个总结。

Server:

为每个EJB(包括有、无状态的Session,或实体Bean),都需要三个文件: bean实现类, remote接口类,home接口类。这些类和一个或多个部署描述符(ejb-jar.xml, jboss.xml等),这些描述符必须在META-INF目录下,一起打包进jar文件。为部署这个jar文件,你只需要拷贝到jboss/server/default/deploy/下。

Client:

1)从JNDI服务,查找bean的home 接口;

2)从home接口,建立一个新的bean或得到一个已经存在bean;

3)用得到的remote接口来访问服务器上bean实现类中商业方法。

在客户端查找home 接口之前,客户端必须知道如何从JNDI来定位。因此我们提供了一个jndi.properties文件。这个文件和一些jboss/clientx下的jar,必须包含到CLASSPATH中,才能使客户端运行。

JBoss下EJB配置详解与实战部署 EJB(Enterprise JavaBeans)是Java EE平台的核心组件模型之一,专为企业级分布式应用开发而设计。它提供了一种标准化的方式来封装业务逻辑,并通过容器管理事务、安全、并发等底层机制,使开发者可以专注于业务逻辑的实现。EJB组件分为三种主要类型:会话Bean(Session Bean):用于处理业务逻辑,分为有状态(Stateful)和无状态( Stateless)两种。实体Bean(Entity Bean) 阅读详情

相关推荐

OpenACS技术详解及JBoss部署应用

OpenACS(Open Architecture Community System)是一个开源的社区网站开发框架,它提供了一套完整的工具来构建动态的、可扩展的互联网和内联网应用程序。OpenACS的架构设计理念是促进网站内容的共享和管理,同时提供强大的数据库支持和模块化的内容管理功能。acs-kernel为开发者提供了一组预定义的操作,如用户认证、权限检查、数据库操作等,这样开发者可以将注意力集中于业务逻辑而不是基础功能的实现。

weixin_42356162的博客 971

自动打包并发布到jboss环境

&lt;project name="ccbear" default="deploy" basedir="."&gt;       &lt;property environment="env" /&gt;     &lt;property name="app.dir" value="${basedir}" /&gt;     &amp

zengshaotao的专栏 886

【硬件自锁开关】用两个D触发器完成实用的自锁开关电路

性价比是做电子设计的人要考虑的事,在学会了用单片机解决大多数问题的时候,是否你也想过用简单的手段解决一个多数场合要解决的问题呢?按一下,输出状态由关闭变成开启,再按一下开启变成关闭。机械弹簧式的开关可以实现自锁的功能:钩子和弹簧将当前状态“储存”起来,这个能量为下一次触发的提供状态“翻转”的动力;在电子设计中,经常通过单片机的程序指令实现自锁:通过寄存器将当前电平状态暂存起来,下一次触发的时候寄存器内容“取反”,再将其输出到端口。可否用电路实现以上过程呢?完全可以,方案很简单,通过两个D触发器即可实现。

qq_33175704的博客 4270

Eclipse配置JBoss的方法

第一次接触JBoss,突然让把项目部署到JBoss上,有点不知所错,以下是自己经过半天的倒腾,理的思路。 Eclipse配置JBoss的方法:(基本和tomcat相似)   1)首先要JDK的安装和配置;   2)然后把JBoss解压到盘符下面(目录最好是根目录下);   3)再配置环境变量JBOSS_HOME:jboss的解压路径以及path(上网搜好多);   4)最后,可以运行D:

FeeMarker的专栏 1万+

完整版:ultralytics下运行yoloworld并训练

本文介绍了Ultralytics YOLO环境的快速配置与使用流程:1) 通过conda创建Python 3.9环境并安装依赖包;2) 配置中科大镜像源加速安装PyTorch和Ultralytics;3) 准备YOLO格式数据集并修改data.yaml配置文件;4) 提供模型预测、训练和验证的常用指令,包括predict/train/val等命令参数设置。文章还包含CLIP模型下载、权重文件获取以及本地安装等注意事项,完整覆盖了从环境搭建到模型部署的全过程。

weixin_50209871的博客 1346

从零开始用STM32驱动RGB屏:配置PCLK、DE同步信号的避坑指南

本文详细介绍了如何使用STM32驱动RGB接口LCD屏幕,重点解析了PCLK配置、同步信号极性和DE使能等关键参数的设置方法。通过实战代码示例和常见问题排查指南,帮助开发者避免常见配置错误,实现稳定的显示效果。特别针对800x480 IPS屏提供了优化建议和调试技巧。

sky77的博客 541

JBOSS用ANT部署 

...

laravel framework 267

使用 Restart Extension 继续解决 Ansys 机械分析

您正在执行复杂或大型的多步有限元分析,突然,您意识到经过数小时的求解后,您需要添加或修改边界条件。在本篇博文中,您将了解如何利用 Ansys Mechanical 中的 RestartAnalysis 扩展来扩展多步分析,方法是合并额外的时间步骤和边界条件,而不会丢失已计算的结果。幸运的是,在 Mechanical 中,有一种直接的方法可以实现这一点,而不会损害您之前的结果,而这在添加新边界条件和使用重新启动点时经常发生。得到的结果符合预期,您可以看到施加的力产生的这两个部分之间的相对位移。

jkh920184196的博客 1233

用eclipse把maven项目打包成war并发布到jboss服务器上的步骤

第一步:打开eclipse,对maven项目右击,点击出现的Debug As---->Debug configurations,点击Debug configurations,找到Maven Build,如下图所示: 第二步:点击上图中显示的Browse Workspace,选择自己的项目,Goals里面填写clean install,然后点击Debug既可以完成生成war包 第三步:打

leifengchuan的博客 1万+

Calibre LVS 问题解析

LVS常见问题与解决办法

m0_61544122的博客 2万+

基于Simulink的异步电机参数在线辨识与自适应控制仿真

本文基于Simulink平台,详细介绍了异步电机参数在线辨识与自适应控制系统的仿真实现。针对异步电机运行中参数时变问题,采用模型参考自适应系统(MRAS)实时辨识转子电阻和互感,并结合自适应PI控制策略动态调整控制器参数。通过搭建完整的矢量控制(FOC)仿真模型,验证了系统在稳态辨识、参数摄动和动态响应等工况下的性能:参数辨识误差<1.2%,转速跟踪误差<20rpm,动态响应时间<10ms。文章还提供了详细的Simulink建模步骤、核心代码实现及性能分析,为高级电机控制系统的设计与优化提

amy_mhd的博客 73

[转载]JBoss文档(二)—JBoss开发、打包、部署

JBoss文档(二)—JBoss开发、打包、部署第一章补充我看了自己写第一章后,对于build.xml没有显示全面,现在补充如下:<!-- Simple Ant build script to test an Ant in...

congji3817的博客 506

HTML粉色爱心(完整代码)

HTML语言实现粉色爱心的完整代码。

AIGC 1118

在JBoss下开发、部署EJB

作者:肖文鹏        JBoss是一个开放源码的EJB服务器,它与其它服务器整合后可以提供一个完整的J2EE平台。本文介绍如何在Linux环境下安装和配置JBoss,以及如何在JBoss平台上实现EJB的开发和部署。 作为J2EE架构中最重要的构件,EJB是实现服务器端分布式计算的核心。EBJ服务器是EJB的容器,它控制着EJB的运行,并为其提供事务处理、数据库访问、安全控制等一系列系统级的

myali88的专栏 1625

Unity中的Timeline

Timeline与动画系统类似,但是它可以针对多个物体做出一系列多个动画,它可以创建多个轨道,对象激活与隐藏轨道,动画轨道,声音轨道等。每个轨道都可以单独编辑,轨道内的不同资源可以排列并且融合

L的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

用Maven打包成EAR远程部署JBoss(二)——部署到远程JBoss

Cargo远程部署,很有用的~~~

曹建新 放飞理想,收获希望 3637

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Jboss 四种部署方法以及探讨

一直以来一直使用tomcat,今天学习了一下jboss,在这里总结一下jboss几种部署的方法,并对其中的一些地方进行了实验和探讨。   Jboss版本: 7.1.1.Final 启动模式:standalone模式 测试war包:mvntest.war (maven构建)     1. 使用UI Console进行部署 jboss提供图形界面的部署方式,启动jboss后,访问h...

kobe_hz的博客 3993

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JBOSS环境下进行EJB开发

<html xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:w="urn:schemas-microsoft-com:office:word"xmlns="http://www.w3.org/TR/REC-html40">前言 hack hack 1 2 2

JAVA赋--陈松的专栏 1013

jboss as 6与eclipse相关开发部署环境

赶在年前学习了一下JBOSS,之前觉得JBOSS相关资料会有很多,不过现在发现很少,在亚马逊出也是很少,只有一个“JBoss实战:服务器配置指南 ”,不过我找到了英文版,有要的可以邮件给大家。我想从不会JBOSS开始进行,到我打包部署到JBOSS后能看到我的HELLO!网页结束的过程。 首先要进行的工作是下JBOSS、JBOSS插件、开发以eclipse为平台,都需要JEE方式。 JBOSS,

pop303的专栏 5710

JBoss技术支持文档(一)

  1、本节内容简介  本章主要介绍JBOSS(免费的EJB服务器),以及教会大家如何安装Jboss,建立你第一个EJB和客户端。关于什么是EJB,以及如何开发等。这些关于EJB方面有很多书籍进行描述,在此不再阐述。描述信息是运行在windows平台,当然你可以应用在其他支持的平台(如:Linux等)。   2、关于JBOSS  Jboss支持EJB 1.1和EJB 2.0的规范,它是一个为管理

!Java 6243

在JBOSS,TOCMAT上部署J2EE应用

发布一个web应用,打包成war文件。单独发布一个EJB组件,打包成jar文件。对于一个J2EE应用,应该打包成ear文件。在Jboss-Tomcat上部署EJB组件部署到目录:/server/default/deploy/相关类文件/ META-INF/ejb-jar.xml/META-INF /jboss.xmlejb.xml文件 BookStore Applicat

风言吾者---崇尚开源 960

jboss运行java项目_JBoss环境搭建及部署Web项目

http://blog.youkuaiyun.com/pop303/article/details/7210290赶在年前学习了一下JBOSS,之前觉得JBOSS相关资料会有很多,不过现在发现很少,在亚马逊出也是很少,只有一个“JBoss实战:服务器配置指南 ”,不过我找到了英文版,有要的可以邮件给大家。我想从不会JBOSS开始进行,到我打包部署到JBOSS后能看到我的HELLO!网页结束的过程。首先要进行的...

weixin_35899510的博客 1611

Jboss文档

作者不详1、本节内容简介        本章主要介绍JBOSS(免费的EJB服务器),以及教会大家如何安装Jboss,建立你第一个EJB和客户端。关于什么是EJB,以及如何开发等。这些关于EJB方面有很多书籍进行描述,在此不再阐述。描述信息是运行在windows平台,当然你可以应用在其他支持的平台(如:Linux等)。2、关于JBOSSJboss支持EJB 1.1和EJB 2.0的规范,它是一个为

myali88的专栏 1564

ant在开发ejb中的部署WEB应用(以jboss为例)

ant在开发ejb中的部署WEB应用(以jboss为例)  from  http://fruitking.iteye.com/blog/286501by  fruitking首先我  们建立一个ejb工程,工程结构如下: testejb     --src       --**.

阿义的专栏 994
上一篇: 使用BigInteger处理大二进制数
下一篇: Borland即将发布Jbuilder 9
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值