小编Waq*_*Ali的帖子

使用Java XPath解析XML Simple String

我有像这样的XML字符串

<resp><status>good</status><msg>hi</msg></resp>
Run Code Online (Sandbox Code Playgroud)

我听从了这个帮助

在Java中查询XML的最简单方法

mycode的:

public static void main(String args[]) {

    String xml = "<resp><status>good</status><msg>hi</msg></resp>";

    XPathFactory xpathFactory = XPathFactory.newInstance();
    XPath xpath = xpathFactory.newXPath();

    InputSource source = new InputSource(new StringReader(xml));

    String status = "";
    String msg = "";
    try {
        status = (String) xpath.evaluate("/resp/status", source,XPathConstants.STRING);
        msg = (String) xpath.evaluate("/resp/msg", source,XPathConstants.STRING);
    } catch (Exception e) {
        e.printStackTrace();
    }

    System.out.println("status=" + status);
    System.out.println("Message=" + msg);


}
Run Code Online (Sandbox Code Playgroud)

我想得到msg节点值,但我得到了异常

java.io.IOException: Stream closed
at java.io.StringReader.ensureOpen(StringReader.java:39)
at java.io.StringReader.read(StringReader.java:73)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.arrangeCapacity(XMLEntityScanner.java:1619)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipString(XMLEntityScanner.java:1657)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:193)
at …
Run Code Online (Sandbox Code Playgroud)

java xml xpath

31
推荐指数
3
解决办法
7万
查看次数

apache http client org.apache.http.NoHttpResponseException:目标服务器无法响应

我正在使用apache http客户端来测试我的WS.我在球衣上写了一个WS.这个WS的URL是

http://localhost:8080/mobilestore/rest/sysgestockmobilews/getinventory?xml=dataString
Run Code Online (Sandbox Code Playgroud)

使用url调用此WS我已经编写了一个方法,如下所示

public static void getInventory(String input)
        throws ClientProtocolException, IOException {

    System.out.println(input);
    String url = URL + "getinventory";
    HttpClient client = new DefaultHttpClient();

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("xml", input));
    String paramString = URLEncodedUtils.format(nameValuePairs, "utf-8");
    url += "?" + paramString;
    System.out.println(url);
    HttpGet request = new HttpGet(url);
    HttpResponse response = client.execute(request);
    BufferedReader rd = new BufferedReader(new InputStreamReader(response
            .getEntity().getContent()));

    String line = "";
    while ((line = rd.readLine()) != null) {
        System.out.println(line);
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,当我运行程序并将url传递给此函数时,我在行中获得异常

HttpResponse response = client.execute(request);
Run Code Online (Sandbox Code Playgroud)

例外情况如下 …

java apache web-services jersey apache-httpclient-4.x

10
推荐指数
1
解决办法
3万
查看次数

将XML映射到Java中的对象

假设我有一个名为Test的类,就像这样

public class Test {

    private String testId;
    private String description;
    private String department;

    public Test() {}

    public Test(String id,String des,String dpt) {
        this.testId = id;
        this.department = dpt;
        this.description = des;
    }

    public String getTestId() {
        return testId;
    }

    public void setTestId(String testId) {
        this.testId = testId;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb xml-binding oxm

9
推荐指数
1
解决办法
1万
查看次数

使用java中的类名在运行时创建对象数组

我们都知道我们可以在字符串格式的类名帮助下创建一个对象.就像我有一个班级名称"测试".运用

Class.forName("Test").newInstance()
Run Code Online (Sandbox Code Playgroud)

我们可以创建该类的对象.

我的问题是,有没有办法使用类名创建对象的数组或数组列表?或者假设我们有一个类的对象,并且可以使用此对象创建该对象的数组或数组列表.

java object

9
推荐指数
2
解决办法
1万
查看次数

Struts + GAE java.security.AccessControlException:struts2-core-2.3.15.3.jar的访问被拒绝

我在GAE中使用struts.我正在使用GAE 1.8和struts 2.3.15 jar文件.

在我的应用程序中,我面临着这个例外

java.security.AccessControlException: access denied ("java.io.FilePermission" "jar:file:\E:\eclipse\Shaun\Convergent\war\WEB-INF\lib\struts2-core-2.3.15.3.jar" "read")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
    at java.security.AccessController.checkPermission(AccessController.java:560)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:431)
    at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
    at java.util.zip.ZipFile.<init>(ZipFile.java:205)
    at java.util.zip.ZipFile.<init>(ZipFile.java:144)
    at java.util.jar.JarFile.<init>(JarFile.java:152)
    at java.util.jar.JarFile.<init>(JarFile.java:89)
    at com.opensymphony.xwork2.util.fs.JarEntryRevision.needsReloading(JarEntryRevision.java:76)
    at com.opensymphony.xwork2.util.fs.DefaultFileManager.fileNeedsReloading(DefaultFileManager.java:66)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:394)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload(StrutsXmlConfigurationProvider.java:169)
    at com.opensymphony.xwork2.config.ConfigurationManager.needReloadContainerProviders(ConfigurationManager.java:215)
    at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:179)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:73)
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:968)
    at org.apache.struts2.dispatcher.ng.PrepareOperations.createActionContext(PrepareOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:86)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.convergent.auth.AuthorizationFilter.doFilter(AuthorizationFilter.java:32)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.convergent.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:48)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:123)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:34)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine struts2

7
推荐指数
1
解决办法
1974
查看次数

XML日期绑定到Java对象日期

我有一个像这样的简单的xml字符串

<table>
   <test_id>t59</test_id>
   <dateprix>2013-06-06 21:51:42.252</dateprix>   
   <nomtest>NOMTEST</nomtest>
   <prixtest>12.70</prixtest>
   <webposted>N</webposted>
   <posteddate>2013-06-06 21:51:42.252</posteddate>
</table>
Run Code Online (Sandbox Code Playgroud)

我有像这样的xml字符串的pojo类

@XmlRootElement(name="test")
public class Test {
    @XmlElement
    public String test_id;
    @XmlElement
    public Date dateprix;
    @XmlElement
    public String nomtest;
    @XmlElement
    public double prixtest;
    @XmlElement
    public char webposted;
    @XmlElement
    public Date posteddate;
}
Run Code Online (Sandbox Code Playgroud)

我使用jaxb for xml绑定到java对象.代码是

try {
    Test t = new Test
    JAXBContext jaxbContext = JAXBContext.newInstance(t.getClass());
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
    t = (Test) jaxbUnmarshaller.unmarshal(new InputSource(new StringReader(xml))); // xml variable contain the xml string define above
} catch (JAXBException e) { …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

5
推荐指数
1
解决办法
4951
查看次数

5
推荐指数
1
解决办法
4151
查看次数

将ResultSet光标移回Firebird

我正在使用Firebird。我知道在Firebird中我们无法将结果集光标移回。仅TYPE_FORWARD_ONLYTYPE_SCROLL_INSENSITIVE不支持时支持。在我的应用程序中,我想像这样使用,将结果集光标移回第一行resultSet.previous()。我想知道是否可以通过任何方式将光标移回。

查看Firebird的以下文档:

JDBC 3.0规范定义了三种类型的结果集

  • TYPE_FORWARD_ONLY:结果集不可滚动,光标只能向前移动。使用TRANSACTION_READ_COMMITTED隔离级别时,结果集将返回ResultSet.next()调用时满足搜索条件的所有行。在其他情况下,结果集将仅返回在事务开始时可见的行。
  • TYPE_SCROLL_INSENSITIVE:结果集是可滚动的,光标可以前后移动,可以定位在指定的行上。只有满足查询执行条件的行才可见。
  • TYPE_SCROLL_SENSITIVE:Firebird和Jaybird不支持。驱动程序允许应用程序请求这种类型的结果集,但是根据JDBC规范,该类型被“降级”为先前的类型,并且相应的警告被添加到连接对象。

由于Firebird中缺少对可滚动游标的支持,因此通过将完整的结果集提取到客户端来实现对它们的支持(TYPE_SCROLL_INSENSITIVE结果集类型)。滚动发生在客户端的内存中。当结果集很大时,这可能会对系统内存使用和性能产生不利影响。

我认为这只是一段代码会有所帮助:

while (res.next()) {
    if (!id.equalsIgnoreCase(res.getString("NO_TRANSFERT"))) {
        res.previous();
        break;
    }
    xml = xml + "<" + tableName + ">\n";
    for (int i = 1; i <= count; i++) {
        String columnName = rsmd.getColumnName(i);
        xml = xml + "<" + columnName + ">" + res.getString(i) + "</"
            + columnName + ">\n";
    }
    xml = xml + "</" + tableName + ">\n\n";
} …
Run Code Online (Sandbox Code Playgroud)

java firebird jdbc resultset jaybird

3
推荐指数
1
解决办法
1029
查看次数

Spring实现微服务架构时,我们是否创建了差异项目

我对微服务架构感到困惑。我无法理解如何在 spring 中实现微服务架构。在 spring 中,我们使用@RestControllerRest API。假设我们有两个如下所示的休息控制器

@RestController
@RequestMapping("/user")
public class UserService {
// this class will hanlder operations related to user
}

@RestController
@RequestMapping("/role")
public class RoleService {
// this class will hanlder operations related to role
}
Run Code Online (Sandbox Code Playgroud)

两个其余控制器都属于一个项目。可以说我们上面的结构是微服务吗?或者我们必须创建两个项目,一个是UserServiceProject,另一个是RoleServiceProject。在UserServiceProject我们为用户操作的rest API创建Rest Controller。在RoleServiceProject我们为角色操作的休息 API 创建了休息控制器。

正如微服务架构所说,每个服务都应该是可独立部署的。从这个定义我们可以说,如果我们有 2 个服务,我们需要创建两个项目,以便两个项目都可以独立部署。

另请注意,这两个服务共享相同的数据库,并且用户和角色之间也存在关系。

java spring spring-mvc spring-boot microservices

3
推荐指数
1
解决办法
715
查看次数

java中的数据库连接

首先,我向您展示代码,然后问几个问题.我有这样的类数据库连接(请忽略语法错误,如果有的话)

class DatabaseConnection {
private static Connection connection = null;
private static String driverName="";
private static String userName="";
private static String passwrod="";
private static String url="";

private DatabaseConnection() { }

public static void createConnection() {

    if ( connection  == null ) {
    // read database credentials from xml file and set values of driverName, userName, passowrd and url

    //create connection with database and set store this connection in connection object created a class level.
    }
}
public static void closeConnection1() …
Run Code Online (Sandbox Code Playgroud)

java database

1
推荐指数
1
解决办法
153
查看次数

Struts2中的日期转换

我想知道如何将转换StringDate在Struts2.我有一个简单的表单,用户以此格式提供日期"yyyy-MM-dd".将Sturts2地图表格提交给bean.我在日期转换中遇到错误.我谷歌它很多,并声明我们必须使用自定义类型转换器.我不想为日期转换编写自定义类型转换器.我认为Struts2中应该有一个简单的机制来进行数据转换,因为数据转换是非常常见的功能.

JSP

<s:form action="AddDomain">
    <s:push value="idp">
        <s:textfield name="domainName"         label="Domain Name" />
        <s:textfield name="url"                label="Domain URL" />
        <s:textfield name="noOfLicense"        label="License Purchased" />

        <s:textfield name="licenseExpireDate"  label="License Expire Date" 
                                               title="YYYY-MM-DD like 2013-01-21" />

        <s:textfield name="userActiveDuration" label="Active User Duration"
                                               title="please mention in days" />

        <s:textarea  name="notes"              label="Note" cols="30" rows="5" ></s:textarea>

        <s:submit value="Add" />
    </s:push>
</s:form>
Run Code Online (Sandbox Code Playgroud)

这是用户输入输入的JSP.

模型类

@Entity
@Table(name = "Domain")
public class IdentityProvider implements Serializable {

    @Id
    @Basic(optional = false)
    private String url;
    private String domainName;
    private …
Run Code Online (Sandbox Code Playgroud)

java struts2 date type-conversion struts2-interceptors

1
推荐指数
1
解决办法
4311
查看次数

从日期对象中获取错误的日期

我有这个代码

import java.text.SimpleDateFormat;
import java.util.Date;

public class TestClass {

  public static void main(String args[]) {
    SimpleDateFormat f = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS");
    Date d = new Date();
    System.out.println(f.format(d));        
  }
}
Run Code Online (Sandbox Code Playgroud)

我预计输出应该是

OutPut: 2013-07-05 19:07:983 (current date time)
Run Code Online (Sandbox Code Playgroud)

但我得到的输出如下

Output: 2013-07-186 19:07:983
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?当我打印这一行时,d.toString()我得到了正确的日期.

java date simpledateformat

-1
推荐指数
1
解决办法
124
查看次数

从java中的当前日期对象中减去x天

我在stackoverflow上关注这个问题但是当n的值大于24时它没有给我正确的答案.请给我另一个解决方案并修改那个问题.

这是代码

Date d = new Date();
Date dateBefore = new Date(d.getTime() - (25 * 24 * 3600 * 1000) );
Run Code Online (Sandbox Code Playgroud)

当我检查datebefore值时,它显示我的日期是星期二,星期二,星期二,02:34:18 UTC 2013

现在,如果我将值25更改为24,我将得到正确的日期,即2013年10月8日星期二09:38:48 UTC

java date

-1
推荐指数
2
解决办法
345
查看次数