测试ofbiz3 的entity.
前期工作:
1:请先用jbx建立ofbiz3的应用
2:在D:\work\ofbiz\base\config中建一个ofbiz-test.xml文件,内容为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ofbiz-containers PUBLIC "-//OFBiz//DTD Containers Config//EN" " http://www.ofbiz.org/dtds/ofbiz-containers.dtd ">
<ofbiz-containers>
<!-- load the ofbiz components (always first) -->
<container name="component-container" class="org.ofbiz.base.container.ComponentContainer"/>
<!-- load the cached classloader container (always second) -->
<container name="classloader-container" class="org.ofbiz.base.container.ClassLoaderContainer"/>
<!-- load JNDI/JOTM -->
<container name="jotm-container" class="org.ofbiz.entity.transaction.JotmContainer"/>
<!-- RMI Service Dispatcher -->
<container name="rmi-dispatcher" class="org.ofbiz.service.rmi.RmiServiceContainer">
<property name="lookup-name" value="RMIDispatcher"/>
<property name="delegator-name" value="default"/>
<property name="client-factory" value="org.ofbiz.service.rmi.socket.CompressionClientSocketFactory"/>
<property name="server-factory" value="org.ofbiz.service.rmi.socket.CompressionServerSocketFactory"/>
</container>
</ofbiz-containers>
3:copy D:\work\ofbiz\base\src\start\org\ofbiz\base\start\Start.properties 到src目录
4:修改Start.properties文件:
ofbiz.container.config=base/config/ofbiz-test.xml
编写java文件:
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.ConnectException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import org.ofbiz.base.start.*;
import org.ofbiz.entity.*;
import org.ofbiz.base.util.*;
public class TestEntity {
public static final String CONFIG_FILE = "start.properties";
public static final String SHUTDOWN_COMMAND = "SHUTDOWN";
public static final String STATUS_COMMAND = "STATUS";
private Classpath classPath = new Classpath(System.getProperty(
"java.class.path"));
private List loaders = null;
private Start.Config config = null;
public TestEntity(String configFile) throws IOException {
if (configFile == null) {
configFile = CONFIG_FILE;
}
this.config = new Start.Config(configFile);
this.loaders = new ArrayList();
}
private void loadLibs(String path) throws Exception {
File libDir = new File(path);
if (libDir.exists()) {
File files[] = libDir.listFiles();
for (int i = 0; i < files.length; i++) {
String fileName = files[i].getName();
if (files[i].isDirectory() && !"CVS".equals(fileName)) {
loadLibs(files[i].getCanonicalPath());
}
else if (fileName.endsWith(".jar") || fileName.endsWith(".zip")) {
classPath.addComponent(files[i]);
}
}
}
}
private void startServer() throws Exception {
// load the lib directory
loadLibs(config.baseLib);
// load the ofbiz-base.jar
classPath.addComponent(config.baseJar);
// load the config directory
classPath.addComponent(config.baseConfig);
// set the classpath/classloader
System.setProperty("java.class.path", classPath.toString());
ClassLoader classloader = classPath.getClassLoader();
Thread.currentThread().setContextClassLoader(classloader);
// stat the log directory
boolean createdDir = false;
File logDir = new File(config.logDir);
if (!logDir.exists()) {
logDir.mkdir();
createdDir = true;
}
// start the loaders
Iterator li = config.loaders.iterator();
while (li.hasNext()) {
String loaderClassName = (String) li.next();
try {
Class loaderClass = classloader.loadClass(loaderClassName);
StartupLoader loader = (StartupLoader) loaderClass.newInstance();
loader.load(config);
loaders.add(loader);
}
catch (Exception e) {
e.printStackTrace();
System.exit(99);
}
}
}
public void testEntity() throws Exception {
System.out.println("Entered testFindByPrimaryKey");
//Instantiate the delegator.
GenericDelegator delegator = GenericDelegator.getGenericDelegator("default");
// Find book by primary key
try {
GenericValue party = delegator.findByPrimaryKey("PartyType",
UtilMisc.toMap("partyTypeId", "PERSON"));
System.out.println(party.getString("description") );
System.out.println(party.getString("hasTable") );
}
catch (GenericEntityException ex1) {
}
return;
}
public void start() throws Exception {
startServer();
}
public static void main(String[] args) throws Exception {
TestEntity start = new TestEntity(args.length == 2 ? args[1] : null);
start.start();
start.testEntity();
}
}
编译,运行:
结果为:
Entered testFindByPrimaryKey
Person
Y
mail:mzhanker@126.com