Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用简单的Java类连接(登录)到Alfresco_Java_Eclipse_Tomcat_Alfresco - Fatal编程技术网

使用简单的Java类连接(登录)到Alfresco

使用简单的Java类连接(登录)到Alfresco,java,eclipse,tomcat,alfresco,Java,Eclipse,Tomcat,Alfresco,我尝试登录到我的alfresco,它部署在:localhost:80/alfresco 这就是我到目前为止所做的: public static void main(String[] args) throws Exception { WebServiceFactory.setEndpointAddress("http://localhost:80/alfresco/api/"); // Start the session AuthenticationUtils.sta

我尝试登录到我的alfresco,它部署在:localhost:80/alfresco

这就是我到目前为止所做的:

 public static void main(String[] args) throws Exception {

    WebServiceFactory.setEndpointAddress("http://localhost:80/alfresco/api/");

    // Start the session
    AuthenticationUtils.startSession(USERNAME, PASSWORD);

    try {

        //Work to do if the login works :S

    } finally {
      // End the session
      AuthenticationUtils.endSession();
    }
  }
这是我在上课时得到的:

WARNING: Unable to find required classes (javax.activation.DataHandler and   javax.mail.internet.MimeMultipart). Attachment support is disabled.
Exception in thread "main" org.alfresco.webservice.util.WebServiceException: Error starting session.
at org.alfresco.webservice.util.AuthenticationUtils.startSession(AuthenticationUtils.java:94)
at com.delta.logic.connect.Query1.main(Query1.java:53)
Caused by: (404)Introuvable
   at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:744)
   at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
   at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
   at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
   at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
   at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
   at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
   at org.apache.axis.client.Call.invoke(Call.java:2767)
   at org.apache.axis.client.Call.invoke(Call.java:2443)
   at org.apache.axis.client.Call.invoke(Call.java:2366)
   at org.apache.axis.client.Call.invoke(Call.java:1812)
   at org.alfresco.webservice.authentication.AuthenticationServiceSoapBindingStub.startSession(AuthenticationServiceSoapBindingStub.java:187)
   at org.alfresco.webservice.util.AuthenticationUtils.startSession(AuthenticationUtils.java:79)
... 1 more
我真的被困在这里了,救命

来自

还请注意,soap web服务的端点已移动了 露天4.2.d。为公共api让路 现在不再是
http://localhost:8080/alfresco/api
肥皂 服务驻留在
http://localhost:8080/alfresco/soapapi

还请注意,soap web服务的端点已移动了 露天4.2.d。为公共api让路 现在不再是
http://localhost:8080/alfresco/api
肥皂 服务驻留在
http://localhost:8080/alfresco/soapapi

还请注意,soap web服务的端点已移动了 露天4.2.d。为公共api让路 现在不再是
http://localhost:8080/alfresco/api
肥皂 服务驻留在
http://localhost:8080/alfresco/soapapi

还请注意,soap web服务的端点已移动了 露天4.2.d。为公共api让路 现在不再是
http://localhost:8080/alfresco/api
肥皂 服务驻留在
http://localhost:8080/alfresco/soapapi


我找到了更好的方法。如果您转到/alfresco/service/index,您将看到alfresco向其用户提供的所有Web服务

我所做的很简单。我获得了登录webservice的URL,并使用如下方式:

public static String getAlfTicket(String _userName, String _password) {
String _ticket;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
RestTemplate restTemplate = new RestTemplate();

restTemplate.setMessageConverters(messageConverters);

String JsonRequest = "{ \"username\": \"" + _userName + "\", \"password\": \"" + _password + "\" }";

HttpEntity<String> requestEntity = new HttpEntity<String>(JsonRequest, headers);

person entity = restTemplate.postForObject("http://yourhost:port/alfresco/service/api/login", requestEntity,
    person.class);

// String path = entity.getHeaders().getLocation().getPath();

System.out.println(entity.getData().getTicket());
_ticket = entity.getData().getTicket();
return _ticket;
  }
公共静态字符串getAlfTicket(字符串\u用户名,字符串\u密码){
串票;
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
列表>();
添加(新表单HttpMessageConverter());
添加(新的StringHttpMessageConverter());
添加(新映射JacksonHttpMessageConverter());
RestTemplate RestTemplate=新RestTemplate();
restemplate.setMessageConverters(messageConverters);
字符串JsonRequest=“{\'username\':\”+\'u username+“\”,\“password\”:\“+\'u password+“\”}”;
HttpEntity requestEntity=新的HttpEntity(JsonRequest,标头);
person实体=restTemplate.postForObject(“http://yourhost:port/alfresco/service/api/login“,请求实体,
个人、班级);
//字符串路径=entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket=entity.getData().getTicket();
回程票;
}
您可以注意到我使用了Spring框架中的restTemplate,但是您可以自由地使用任何您想要得到响应的内容。此功能的结果是一张票证,以后可用于其他目的


希望有帮助

我找到了更好的方法。如果您转到/alfresco/service/index,您将看到alfresco向其用户提供的所有Web服务

我所做的很简单。我获得了登录webservice的URL,并使用如下方式:

public static String getAlfTicket(String _userName, String _password) {
String _ticket;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
RestTemplate restTemplate = new RestTemplate();

restTemplate.setMessageConverters(messageConverters);

String JsonRequest = "{ \"username\": \"" + _userName + "\", \"password\": \"" + _password + "\" }";

HttpEntity<String> requestEntity = new HttpEntity<String>(JsonRequest, headers);

person entity = restTemplate.postForObject("http://yourhost:port/alfresco/service/api/login", requestEntity,
    person.class);

// String path = entity.getHeaders().getLocation().getPath();

System.out.println(entity.getData().getTicket());
_ticket = entity.getData().getTicket();
return _ticket;
  }
公共静态字符串getAlfTicket(字符串\u用户名,字符串\u密码){
串票;
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
列表>();
添加(新表单HttpMessageConverter());
添加(新的StringHttpMessageConverter());
添加(新映射JacksonHttpMessageConverter());
RestTemplate RestTemplate=新RestTemplate();
restemplate.setMessageConverters(messageConverters);
字符串JsonRequest=“{\'username\':\”+\'u username+“\”,\“password\”:\“+\'u password+“\”}”;
HttpEntity requestEntity=新的HttpEntity(JsonRequest,标头);
person实体=restTemplate.postForObject(“http://yourhost:port/alfresco/service/api/login“,请求实体,
个人、班级);
//字符串路径=entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket=entity.getData().getTicket();
回程票;
}
您可以注意到我使用了Spring框架中的restTemplate,但是您可以自由地使用任何您想要得到响应的内容。此功能的结果是一张票证,以后可用于其他目的


希望有帮助

我找到了更好的方法。如果您转到/alfresco/service/index,您将看到alfresco向其用户提供的所有Web服务

我所做的很简单。我获得了登录webservice的URL,并使用如下方式:

public static String getAlfTicket(String _userName, String _password) {
String _ticket;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));

List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new FormHttpMessageConverter());
messageConverters.add(new StringHttpMessageConverter());
messageConverters.add(new MappingJacksonHttpMessageConverter());
RestTemplate restTemplate = new RestTemplate();

restTemplate.setMessageConverters(messageConverters);

String JsonRequest = "{ \"username\": \"" + _userName + "\", \"password\": \"" + _password + "\" }";

HttpEntity<String> requestEntity = new HttpEntity<String>(JsonRequest, headers);

person entity = restTemplate.postForObject("http://yourhost:port/alfresco/service/api/login", requestEntity,
    person.class);

// String path = entity.getHeaders().getLocation().getPath();

System.out.println(entity.getData().getTicket());
_ticket = entity.getData().getTicket();
return _ticket;
  }
公共静态字符串getAlfTicket(字符串\u用户名,字符串\u密码){
串票;
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
列表>();
添加(新表单HttpMessageConverter());
添加(新的StringHttpMessageConverter());
添加(新映射JacksonHttpMessageConverter());
RestTemplate RestTemplate=新RestTemplate();
restemplate.setMessageConverters(messageConverters);
字符串JsonRequest=“{\'username\':\”+\'u username+“\”,\“password\”:\“+\'u password+“\”}”;
HttpEntity requestEntity=新的HttpEntity(JsonRequest,标头);
person实体=restTemplate.postForObject(“http://yourhost:port/alfresco/service/api/login“,请求实体,
个人、班级);
//字符串路径=entity.getHeaders().getLocation().getPath();
System.out.println(entity.getData().getTicket());
_ticket=entity.getData().getTicket();
回程票;
}
您可以注意到我使用了Spring框架中的restTemplate,但是您可以自由地使用任何您想要得到响应的内容。此功能的结果是一张票证,以后可用于其他目的


希望有帮助

我找到了更好的方法。如果你去/露天/服务/索引y