从Java服务器面访问c#对象

本文关键字:对象 访问 Java 服务器 | 更新日期: 2023-09-27 18:04:09

这可能吗?我该怎么做呢?例如,如果我有一个person对象:

public class Person
{
    // Field 
    public string name;
    // Method 
    public void SetName(string newName)
    {
    name = newName;
    }
}

如何从JSP页面访问Person.name ?网络服务能帮我吗?

从Java服务器面访问c#对象

没有直接的方法。

首先,你必须将你的Java应用程序与。net (c#, VB.net或其他)应用程序进行通信,可能是通过使用Web服务。然后,在Java应用程序中,您将检索数据并按需要处理它。这是最通用的方法。

为JSF:

  • 您可以从托管bean或服务层触发请求。在我看来,最好是在服务层实现。
  • 检索数据后,您可以将其解析回POJO (Java Plain Old Object)以简化其使用。这个POJO可以在一个托管bean字段中设置,然后可以很容易地在视图中使用(JSP或Facelets,取决于您使用哪一个)。
在代码:

public class Person {
    private Integer id;
    private String name;
    //getters and setters...
}
public class PersonService {
    public Person findPerson(Integer id) {
        //code to retrieve the person object from web service call
        //and convert the response into Person object
        Person person = ...
        return person;
    }
}
@ManagedBean
@RequestScoped
public class PersonBean {
    private Integer personId;
    private Person person;
    public void findPerson() {
        PersonService personService = new PersonService();
        this.person = personService.findPerson(personId);
    }
}

在您的视图中(最小示例):

<h:form>
    Person id:
    <h:inputText value="#{personBean.personId}" />
    <h:commandButton value="Find person" action="#{personBean.findPerson}" />
</h:form>
<ui:fragment rendered="#{not empty personBean.person}">
    Person name: #{personBean.person.name}
</ui:fragment>
<ui:fragment rendered="#{empty personBean.person}">
    Person not found.
</ui:fragment>

我认为web service是唯一的解决方案