Programmer

追逐梦想的人
随笔 - 6, 文章 - 0, 评论 - 5, 引用 - 0
数据加载中……

2007年4月13日

部署spring2.56中的例子jpetstore

部署环境:tomcat6.0.18   jdk5   mysql5.1

1.   下载  到www.springsource.org/download 中 下载spring-framework-2.5.6.SEC01-with-dependencies
2.   jpetstores说明(自己翻译jpetstore中的readme.txt,本人英语不好 ,翻译不到位请手下留情)
     配备spring管理的中间层和ibatis作为数据访问策略数据层,与spring的事务 和抽象DAO相结合。能使用本地的JDBC或者JTA 和2个数据库中的后者一起工作
     使用了相同的数据模型和演示内容来作为jpetstore的原型,可以分别的查看 "WEB-INF/dataAccessContext-local.xml","WEB-INF/dataAccessContext-jta.xml"
     上下文定义的细节。
     提供了相同的用户界面两种不同的Web层实现,一个基于spring mvc,一个基于struts1.1,后者与jpetstore关系密切,但是用JSTL重写作为jsp的实现,
     尽可能的具有可比性。查看"WEB-INF/web.xml", "WEB-INF/petstore-servlet.xml",and "WEB-INF/struts-config.xml" 的细节。
     与原来的jpetstore原型相比,这个实现在内部结构和松耦合方面有了显著的改善。支持的应用上下文的概念,现在核心就是构建 应用对象(application objects)
     最显著的改善就是 PetStoreLogic,现在叫做PetStoreFacade,它不再与配置,资源,事务的细节相关
     注意以spring为基础的web层实现是故意与以struts为基础的相似并不是打算改进错误信息等方面的现状。jpetstore包含2个不同实现的web层来概括除了不同
     之外在各自程序设计模型的相同点,也阐明不同风格的配置。
     这个版本的jpetstore也展示了spring远程处理的可选项 如:Hessian, Burlap, RMI, and Web Services via Apache Axis.他们都提供了即插即用通过
     默认的web应用(注意RMI是添加注释避免与EJB容器冲突)“客户端”目录包含了一个通过所有协议调用OoderService输出的简单控制行客户端。
3.   部署
  • 创建数据库  先创建数据库 执行\jpetstore\db\mysql里面 jpetstore-mysql-schema.sql,jpetstore-mysql-dataload.sql 用来建表和导入数据(不同数据库自己对应查找)
  • 改数据库配置文件  在\jpetstore\war\WEB-INF  修改jdbc.properties(自己对应自己的设置)
    1 jdbc.driverClassName=com.mysql.jdbc.Driver
    2 jdbc.url=jdbc:mysql://localhost/jpetstore?
    3 jdbc.username=root
    4 jdbc.password=root
    5 
  • web层实现的选择  在\jpetstore\war\WEB_INF   web.xml代码
    <servlet-mapping>
             
    <!--使用spring mvc默认 -->
        
    <servlet-name>petstore</servlet-name>
            
    <!--使用struts -->
    <!--<servlet-name>action</servlet-name>-->
        
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
  • 部署 /jpetstore 运行warfile.bat 生成一个文件夹dist 把里面的jpetstore.war复制到 tomcat目录下的webapps  ,把对应的数据库驱动放到tomcat\lib下
  • 运行tomcat 打开浏览器http://localhost:8080/jpetstore 可以看到jpetstore页面  have fun!



posted @ 2010-03-24 13:43 霜の哀伤 阅读(1774) | 评论 (2)编辑 收藏

java学习笔记(xml解析)

最近学习xml,把学习的代码发上来   希望对新手有用
这是note.xml
<?xml version="1.0" encoding="gb2312" ?> 
<notes>
<note date="2007-4-12">
<from>小红</from> 
<to>小林</to> 
<message>周末一起去吃火锅呀</message> 
</note>
</notes>

这是dom解析xml代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;


class  DomXMLTest
{
    
public static void main(String[] args)
    {   
        
try{
         
//(1)得到DOM解析器的工厂实例
        DocumentBuilderFactory factory =DocumentBuilderFactory.newInstance();     
          
//(2)从DOM工厂获得DOM解析器
        DocumentBuilder  builder=factory.newDocumentBuilder(); 
        File f
=new File("note.xml");
         
//(3)把要解析的XML文档转化为输入流,以便DOM解析器解析它
        InputStream  is=new FileInputStream(f);  
        
//(4)解析XML文档的输入流,得到一个Document
        Document doc=builder.parse(is);    
        
//(5)得到XML文档的根节点
        Element  root=doc.getDocumentElement(); 
         
//(6)得到节点的子节点
        NodeList  notes=root.getChildNodes();   

          
for(int i=0;i<notes.getLength();i++)
          {
               Node note
=notes.item(i);
            
if(note.getNodeType()==Node.ELEMENT_NODE)
                {  
                    
//(7)取得节点的属性值
                    String date =note.getAttributes().getNamedItem("date").getNodeValue(); 
                    System.out.println(date);
                    
// (8)轮循子节点
                    for(Node node=note.getFirstChild();node!=null;node=node.getNextSibling()) 
                         {
                                
if(node.getNodeType()==Node.ELEMENT_NODE)
                                     {
                                            
if(node.getNodeName().equals("from"))
                                            {
                                                 String from
=node.getFirstChild().getNodeValue();
                                                 System.out.println(from);
                                             }
                                            
if(node.getNodeName().equals("to"))
                                             {
                                                  String to
=node.getFirstChild().getNodeValue();
                                                   System.out.println(to);
                                             }
                                             
if(node.getNodeName().equals("message"))
                                             {
                                                   String message
=node.getFirstChild().getNodeValue();
                                                   System.out.println(message);
                                              }
                                      }
                           }
                  }

        }
        }
        
catch(ParserConfigurationException e)
        {
            e.printStackTrace();
        }
        
catch(SAXException e)
        {
            e.printStackTrace();
        }
        
catch(IOException e)
        {
            e.printStackTrace();
        }
     }                                  
}

还有 出现 下面的错误  是xml的格式不对 ,我就应为在 <?xml 前面多个空格 就找了好几天的错误
特别感谢那些帮我找问题的高手,用范伟的话说  谢谢啊
The processing instruction target matching "[xX][mM][lL]" is not allowed.




posted @ 2007-04-13 18:08 霜の哀伤 阅读(432) | 评论 (1)编辑 收藏