デフォルトの Eclipse ウィザードを使用して Web サービス クライアントを作成しました ([ファイル] > [新規] > [その他] で、Web サービス クライアントのウィザードを選択します)。クラスが生成され、次のようなコードでサービス メソッドを使用できるようになりました。
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import com.olsn.ws.ShipmentService_PortType;
import com.olsn.ws.ShipmentService_ServiceLocator;
public class wsClient {
public static void main(String[] args) throws ServiceException, RemoteException {
//To load the web service and to create the client
ShipmentService_ServiceLocator WS = new ShipmentService_ServiceLocator();
ShipmentService_PortType client = WS.getShipmentServicePort();
//To get Close status for Issue
System.out.println(client.getCloseDesc("35557"));
//To get the list of NetP projects
for (int i=1; i<client.getProjects().length;i++)
{System.out.println(client.getProjects()[i].toString());}
}
}
現在の問題は、ユーザー名とパスワードが導入されたことです。サーバーにアクセスするためにコードを変更する方法がわからないため、オーセンティケーターを追加しようとしていました。
import java.net.Authenticator;
import java.net.PasswordAuthentication;
Authenticator myAuth = new Authenticator()
{
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("user", "password".toCharArray());
}
};
Authenticator.setDefault(myAuth);
または、生成されたプロキシ クラスの _initShipmentServiceProxy() メソッドを変更します。
private void _initShipmentServiceProxy() {
try {
shipmentService_PortType = (new com.olsn.ws.ShipmentService_ServiceLocator()).getShipmentServicePort();
if (shipmentService_PortType != null) {
if (_endpoint != null)
{
((javax.xml.rpc.Stub)shipmentService_PortType)._setProperty("javax.xml.rpc.service.endpoint.address", _endpoint);
**((javax.xml.rpc.Stub)shipmentService_PortType)._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "user");
((javax.xml.rpc.Stub)shipmentService_PortType)._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "password");**
}
else
_endpoint = (String)((javax.xml.rpc.Stub)shipmentService_PortType)._getProperty("javax.xml.rpc.service.endpoint.address");
}
}
catch (javax.xml.rpc.ServiceException serviceException) {}
}
しかし、私はこれらのエラーを受け取り続けます:
org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client.Authentication
faultSubcode:
faultString: Access denied to operation getCloseDesc
何を変更すればよいか教えてください。